1

ユニットテストを開始するときにエラーが発生しました テストメソッドTestNameが例外を投げました System.IO.FileNotFoundException:ファイルまたはアセンブリ 'Assembly.dllを読み込めませんでした'またはその依存関係の1つ。指定されたモジュールは に見つかりませんでした。ファイルまたはアセンブリ 'Assembly.dll'を読み込めませんでした - vstest

この問題は、vstest.console.exeを使用している場合にのみ発生します。 Visual Studio(2013)でテストを実行すると発生しません。 Visual Studioでテストを実行しているときにvstest.executionengine.exeが実行されていることがわかりました。そのログはvstest.executionengine.exe.configファイルで有効にすることができます(ただし、有用な情報は得られません)。

これらのタイプの多くの他の質問で提案されているように私はすでに依存関係ウォーカーを使用:依存関係ウォーカーは、彼らが欠けていると思う( Dependency Walker screenshot そして私は、私はすべてのDLLは、System32ディレクトリに、プログラムの実行ディレクトリに赤に色付けしていることを確認)。テストの実行は、次のようになります。

"C:¥Program Files(x86)¥Microsoft Visual Studio 12.0¥Common7¥IDE¥CommonExtensions¥Microsoft¥TestWindow¥vstest.console.exe" "dll1.dll" "dll2。 (すべてのDLLのテストなど)/ InIsolation/UseVsixExtensions:false /プラットフォーム:x86/Framework:framework40/Logger:trx/Tests:TestName (およびすべての不足しているDLLは、API-MS-WIN(。 ..)という名前のDLLは、TestWindowまたはSystem32ディレクトリにあります)。 私はすでにチェックしています。 私はMicrosoft Visual C++ Redistributable 2008、2010、2012および2013をx86とx64の両方のバージョンにインストールしています。 DLLの名前とテスト名が変更されましたが、もちろん別の名前があります:)

+0

[アセンブリバインディングログ](https://msdn.microsoft.com/library/e74a18c4)を試しましたか? 'vstest.console.exe'が同じ場所から始まり、その環境で同じ' PATH'を使用していることを確認してください。プロセスエクスプローラを使用して、成功した 'vstest.executionengine.exe'のコマンドライン/環境を取得できます。 –

+0

申し訳ありませんが私はとても遅く答えました。 Jeroen Mostert :) PATH変数は、私が使った2つの環境の別​​のものでした。 1つのディレクトリがPATHになく、そのDLLが見つからなかったためです。私は木曜日にこれについて知りましたが、私はその時点で答えを投稿しませんでした。 – Zygmuntix

答えて

0

調査後: PATH変数は2つの環境で使用されていました。 1つのディレクトリがPATH環境変数にないため、そのDLLが見つかりませんでした。 PATH変数にこのキーディレクトリを追加することで問題は解決されました。不完全なPATH変数を持つ環境はJenkinsでした。

関連する問題