.NET

.NET Core のNugetパッケージと中身のDLLのバージョンにGitのコミットIDを含める

だいぶ前に、.NET Framework でAssemblyInfoをいじってファイルバージョンを自動採番するというのをやったのですが、 gozuk16.hatenablog.com 最近は、.NET Coreのプロジェクトが始まってやり方が色々違うし、どうやらJavaでやってたようにGitのコミットIDを…

Windows版 SourceTreeの文字化けを直す

Windows版のSourceTreeのUIで左側のブランチを選ぶところとかコミットログの日本語がお豆腐(□)になってしまってえらい困っていたのですが以下のサイトによるとWindowsUpdateの影響だったようです。 (Windows7で発症していてWindows10では発症していなかった…

NuGetパッケージのキャッシュをクリアする

自分が悪いのですが、snapshotを作らずに同じバージョンのパッケージをNexusリポジトリにどんどん上書きしていたら、参照しているプロジェクト側で何度消して入れ直しても古いパッケージが入ってしまうようになった。 キャッシュは、C:\Users\ユーザ名\AppDa…

Visual Studio 2015にしたらNuget restoreで参照設定が復元されなくなった

Jenkinsで流すと、nuget restoreは一見正常に終了しているが次のMSBuildでエラーになります。 エラーは次の通り。(ちょっと長いけど) ResolveAssemblyReferences: プライマリ参照 "log4net" です。 C:\Program Files\MSBuild\14.0\bin\Microsoft.Common.Curr…

Visual Studio 2015 で古いプロジェクトを開いた時に「参照」が壊れた

現象 Visual Studio 2012のプロジェクトを2015で開いたら、参照が全部壊れているプロジェクトがあった。(全部ではない) SystemとかSystem.Coreとか基本的なやつやlog4netといったnuget管理の物も黄色の!がでて参照できなくなっている 参照からランタイムを…

C#でWindowsのシステム環境変数を取得するときに値として埋め込まれている環境変数を展開しないで取得する

題名長い (;´д`) 環境変数を取得して改変してセットしたいときに値として埋め込まれた環境変数が展開されてしまうと不都合があると思います。 システム環境変数Pathを取得して変更する例 システム環境変数(例えばPath)を取得したい場合、いくつかやり方があ…

C#でファイルバージョンは自動的なリビジョンを入れ、製品バージョンを手動で振る

デフォルトではAssemblyVersionとAssemblyFileVersionがあるのですが、なぜか両方あると*が効きませんよね。 AssemblyFileVersionを指定しなければ自動的なリビジョンが振られます。 // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジ…

log4netのログファイルを環境変数で設定する

log4netのログファイルの指定でパスの部分を環境変数から取得して設定したくなりました 現状は相対パスで書いていてlog4net.dllが動いているディレクトリからの相対パスになってます。 <file value="log\hogehoge.log" /> ドライブレターを変えたいというご要望なので、以下のようにしたら環境</file>…

MSTestのAssertでコンソール出力の文言を比較する

コンソールアプリの中で標準出力している文言をMSTestでテストしたい テスト対象の戻り値が成功でも状態によって出力される文言が変わるのでテストしておきたい StringWriter でコンソール出力を奪ってからメソッドを実行し、StringReaderで読み出せば良いら…

C# で製品バージョンとかファイルバージョンをAssemblyInfoから取得する

C#でコマンド作っててUsageの表示でバージョンとか出したいけど、AssemblyInfo.csに書いてあることを2度書きたくなかったので Command Line Parser Libraryを使ってUsageを表示しているので、その中でアセンブリ情報を取得して表示します。 製品バージョン…

自動実装するプロパティを使ってみる

C#でプロパティを書くときに特別な処理が要らなければgetter, setterを省略できるらしい getter, setter書いてると冗長だし、コードが長くなって見づらくなるので書きたくない。ということで使ってみる。 よくあるprivateのフィールドとpublicのプロパティ /…

C#でstringに格納されているCSVを処理する

ファイルからCSVを読み込む例は多かったけどstringに格納されたCSVの処理があんまりなかったのでメモ。 対象文字列の処理 _msgというstringに入ってきた複数行のCSVデータを1行づつバラす。 Split()は文字列指定ができる。 string[] lines = _msg.Split(new …