1

启动一个单元测试时出现此类错误: 测试方法TestName抛出异常: System.IO.FileNotFoundException:无法加载文件或程序集'Assembly.dll '或它的一个依赖关系。找到指定的模块不能为 。无法加载文件或程序集“Assembly.dll” - vstest

仅当使用vstest.console.exe时才会出现此问题。当我通过Visual Studio运行我的测试时,不会发生这种情况(2013)。我知道当通过Visual Studio运行测试时,会运行vstest.executionengine.exe。日志可以在vstest.executionengine.exe.config文件中启用(但它不提供任何有用的信息)。

我已经使用的Dependency Walker在这些类型的许多其他问题,建议: Dependency Walker screenshot 我看到,我在System32目录中或在程序执行目录颜色,以红色的所有DLL(Dependency Walker中认为,他们缺少)。执行测试如下所示:

“C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ vstest.console.exe”“dll1.dll”“dll2。 dll“(等所有与测试dll)/ InIsolation/UseVsixExtensions:false/Platform: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'。您可以使用Process Explorer捕获成功的'vstest.executionengine.exe'的命令行/环境。 –

+0

对不起,我这么晚回复。正如你认为的Jeroen Mostert :) PATH变量是我使用的2个环境的另一个变量。一个目录不在PATH中,因为找不到该DLL。周四我发现了这件事,但当时我没有发布答案。 – Zygmuntix

回答

0

调查后: PATH变量是另一个我使用的2个环境。一个目录不在PATH环境变量中,因为找不到该DLL。将此密钥目录添加到PATH变量解决了问题。具有不完整PATH变量的环境是Jenkins。

相关问题