読者です 読者をやめる 読者になる 読者になる

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のプロパティ /…

Groovyからexecute()したプロセスで環境変数がうまく取れない

C#で書いたexeがあって、内部でEnvironment.GetEnvironmentVariable("ComSpec");してcmd.exeのフルパスを取っているのですが、何故かGroovyからexecute()した時だけ値が空白になります。 検証コード groovy> println "cmd /c set".execute([], new File(".")…

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

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