JP1/AJSから実行すると*.exe.configが読み取れないケースがある
JP1/AJSから.NET Frameworkのコンソールアプリを実行したときに起こることがある事象についてです。今のところ、なぜこれが起こるのかわかっていません。したがってこれが.NET Frameworkの問題なのか、当該アプリ固有の問題なのか、それともJP1/AJSの問題なのか、あるいはそれ以外なのかはわかりません。そういうわけで、どうしたら事象を解消できるのかも分かっていません。 その後、原因がわかりました。JP1/AJS2の仕様でした(2017/06/23追記)。
事象
JP1/AJSのPCジョブで.NET Frameworkのコンソールアプリの*.exeを実行するとき、*.exe.configが読み取れない。
読み取りにあたって何か例外がスローされるわけではない。ファイルがそもそも存在していない扱いとなり、ConfigurationManager.AppSettings
プロパティが返すNameValueCollection
の内容が空の状態となる。
環境情報
OS | Windows Server 2008 R2 |
AJS | JP1/AJS3 Agentサービスを利用。ただし別サーバで稼働するManagerサービスはJP1/AJS2。Agent/Managerのバージョン差異については、当該環境構築したおりHITACHIのサポートより問題ない旨の回答を得ている。 |
.NET | .NET Framework v4.5.2 |
表面的な原因
この事象が発生しているとき、Assembly.GetEntryAssembly().Location
プロパティが返すアセンブリのパスが「*.exeの配置されたディレクトリのパス+ "\" + *.exeのベースネーム("*"部分)の先頭6文字の大文字表記 + "~1.exe"」という値になっている。
つまりもし*.exeが "C:\path\to\SampleApp.exe" である場合、上述のプロパティが返す値は "C:\path\to\SAMPLE~1.exe" となる。
このため本来のアプリケーション構成ファイル "SampleApp.exe.config" の内容はそのままに、名称を "SAMPLE~1.exe.config" としたものを用意しておくと、この内容が読み込まれて、ConfigurationManager.AppSettings
プロパティが返すコレクションのエントリーとしてプログラム側から参照できる。
根本的な原因
今のところ不明。 前述の通り、この記事を書いたあと、原因がわかりました。JP1/AJS2の仕様でした。JP1/AJS2は基本的にPCジョブの実行ファイル名をショートファイル名に変換してしまうのです(2017/06/23追記)。
同様の構成(環境情報のセクションを参照のこと)で稼働するアプリでこの事象を発現しているものは今のところ見つかっていないため、PCジョブの設定もしくは*.exe自体に原因がある可能性が高いが、突き止められていない。
Visual StudioでNUnitのテストケースが表示されなくなった
Visual Studio 2017とNUnit 3.7の組み合わせで遭遇した事象とその対策方法です。stackoverflowのこちらの記事で見つけました。
事象
Visual StudioのテストエクスプローラにNUnitのテストケースが表示されなくなった。前日までは表示されていたのに、いつの間にかされなくなった。
テストケース自体(TestFixtureAttribute
やTestAttribute
を付与したコード)には何も変更を加えていない。ソリューションやプロジェクトの設定情報も特段の変更をしていない。
以下の作業を行っても状況に変化がない:
環境情報
OSとソフトウェア
OS/SW | バージョン | 備考 |
---|---|---|
OS | Windows 10 Home | |
.NET Framework | 4.7.02046 | |
Visual Studio | 2017 Community / v15.2 Release | |
NUnit | 3.7.1 | NuGetを使用してプロジェクトにインストール |
NUnit3TestAdapter | 3.7.0 | 同上 |
対策
%TEMP%\VisualStudioTestExplorerExtensions\NUnit3TestAdapter{バージョン}
フォルダを削除してからソリューションをオープンするだけです。
実際のフォルダのパスは、私のPCではC:\Users\{ユーザ名}\AppData\Local\Temp\VisualStudioTestExplorerExtensions\NUnit3TestAdapter{バージョン}
というものでした。
前述の記事では親フォルダのレベルから削除するように記載がありますが、少なくとも私の場合はNUnit3TestAdapter{バージョン}
フォルダの削除で解消できました。
辻村深月『盲目的な恋と友情』
- 作者: 辻村深月
- 出版社/メーカー: 新潮社
- 発売日: 2014/05/22
- メディア: 単行本
- この商品を含むブログ (17件) を見る
「恋」に溺れる主人公と、彼女のそばで「友情」に溺れる友人のお話。あるいは、恋や友情による社会的結びつきの実践が提供してくれる「地位」(○○の恋人、○○の夫・妻、○○の親友など)と、それがもたらしてくれるであろう「利潤」の追求に、意識的にも無意識的にも囚われた主人公たちのお話です。自分の文化資本に照らしてふさわしい相手、自分のコンプレックスを解消してくれる相手、自分の破綻・没落しつつある出自の代替となり、自身の社会的上昇を実現してくれる相手などなど。それらを探し求めるゲームは、経済的安定の追求とくらべて、本質からして終わりのない、より疲労困憊させられるゲームです。柚木麻子の『けむたい後輩』などもそうですが、こういう差異化・卓越化の実践のお話は重たいですがきらいではありません。