2016-05-11 1 views
0

CNTKのEvalWrapper.dllを参照するいくつかのテストで.NETアセンブリがあります。 CNTKビルドはx64をターゲットにしており、.NETテストアセンブリはターゲットAnyCPUをビルドしています。すべての必要なDLLがビルド出力ディレクトリsee this SO question hereで利用できるようにしました。私は、VSテスト設定/プロセッサアーキテクチャでx64を選択しました。CNTKでアセンブリロードが失敗するEvalWrapper

私のテストはしばらくの間うまくいきましたが、EvalWrapper.dllをロードすると、アセンブリの読み込みエラーBadImageFormatExceptionで失敗し始めました。 Fusionのログビューアでロードエラーを検査することも、間違った形式を超えて何かを明らかにしなかった。

The operation failed. 
Bind result: hr = 0x8007000b. An attempt was made to load a program with an incorrect format. 
Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 
Running under executable C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\TESTWINDOW\te.processhost.managed.exe 
--- A detailed error log follows. 
=== Pre-bind state information === 
LOG: DisplayName = EvalWrapper, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null 

私は私のプロジェクトの設定に変更したものはありません。私のテストがすべて失敗するように、何が変わったのでしょうか?

答えて

0

"Test Settings/Keep Test Execution Engine Running"がチェックされていないにもかかわらず、バックグラウンドでまだ実行されていた32ビットテスト実行エンジンが原因だと思います。昨日私はVSが私の選択したプロセッサアーキテクチャを "忘れてしまった"ことに気付き、32ビットにリセットされました。私はそれを64ビットに戻しました。後ろ向きで、問題がどこから始まったのかと思います。

VSは、テスト用にプロセッサアーキテクチャを静かに変更していますが、他のプロジェクトで以前気付いたこともあります。

VSをクローズして再び開くとそのトリックが実行され、すべてのテストがもう一度完了します。あるいは、実行していたすべてのテスト実行エンジンプロセスを探してそれらを強制終了する可能性があります。

関連する問題