无法加载文件或程序集 'Assembly.dll' - vstest
Could not load file or assembly 'Assembly.dll' - vstest
我在启动一个单元测试时遇到这样的错误:
测试方法 TestName 抛出异常:
System.IO.FileNotFoundException: 无法加载文件或程序集 'Assembly.dll' 或其依赖项之一。指定的模块不能
找到了。
此问题仅在使用 vstest.console.exe 时出现。当我通过 Visual Studio (2013) 运行 我的测试时,它不会发生。当 运行ning 通过 Visual Studio 测试时,我知道 vstest.executionengine.exe 是 运行。可以在 vstest.executionengine.exe.config 文件中启用它的日志(但它没有给我任何有用的信息)。
我已经按照许多其他此类问题的建议使用了 Dependency Walker:
而且我看到我在 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:测试名称
(以及所有可能丢失的 dll,只有 API-MS-WIN(...) 命名的 dll 不在 TestWindow 或 System32 目录中)。
我已经检查过了。
我在 x86 和 x64 版本中安装了 Microsoft Visual C++ Redistributable 2008、2010、2012 和 2013。
丢失的 dll 名称和测试名称已更改,当然它们有其他名称:)
经过调查:
PATH 变量是我使用的 2 个环境的另一个变量。一个目录不在 PATH 环境变量中,因此找不到该 DLL。将这个关键目录添加到 PATH 变量解决了这个问题。 PATH变量不完整的环境是Jenkins。
我在启动一个单元测试时遇到这样的错误: 测试方法 TestName 抛出异常: System.IO.FileNotFoundException: 无法加载文件或程序集 'Assembly.dll' 或其依赖项之一。指定的模块不能 找到了。
此问题仅在使用 vstest.console.exe 时出现。当我通过 Visual Studio (2013) 运行 我的测试时,它不会发生。当 运行ning 通过 Visual Studio 测试时,我知道 vstest.executionengine.exe 是 运行。可以在 vstest.executionengine.exe.config 文件中启用它的日志(但它没有给我任何有用的信息)。
我已经按照许多其他此类问题的建议使用了 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:测试名称 (以及所有可能丢失的 dll,只有 API-MS-WIN(...) 命名的 dll 不在 TestWindow 或 System32 目录中)。 我已经检查过了。 我在 x86 和 x64 版本中安装了 Microsoft Visual C++ Redistributable 2008、2010、2012 和 2013。 丢失的 dll 名称和测试名称已更改,当然它们有其他名称:)
经过调查: PATH 变量是我使用的 2 个环境的另一个变量。一个目录不在 PATH 环境变量中,因此找不到该 DLL。将这个关键目录添加到 PATH 变量解决了这个问题。 PATH变量不完整的环境是Jenkins。