C# 无法加载文件或程序集';Assembly.dll';-vstest

C# 无法加载文件或程序集';Assembly.dll';-vstest,c#,unit-testing,dll,visual-studio-2013,filenotfoundexception,C#,Unit Testing,Dll,Visual Studio 2013,Filenotfoundexception,我在启动一个单元测试时出现了这样的错误: 测试方法TestName引发异常: System.IO.FileNotFoundException:无法加载文件或程序集“assembly.dll”或其依赖项之一。无法找到指定的模块 找到了 此问题仅在使用vstest.console.exe时发生。当我通过Visual Studio(2013)运行测试时,不会发生这种情况。我知道vstest.executionengine.exe是在通过Visual Studio运行测试时运行的。可以在vstest.e

我在启动一个单元测试时出现了这样的错误: 测试方法TestName引发异常: System.IO.FileNotFoundException:无法加载文件或程序集“assembly.dll”或其依赖项之一。无法找到指定的模块 找到了

此问题仅在使用vstest.console.exe时发生。当我通过Visual Studio(2013)运行测试时,不会发生这种情况。我知道vstest.executionengine.exe是在通过Visual Studio运行测试时运行的。可以在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:TestName (所有可能丢失的DLL,只有API-MS-WIN(…)命名的DLL不在TestWindow或System32目录中)。 我已经查过了。 我有微软Visual C++ +可重新分配2008, 2010, 2012和2013安装在x86和x64版本。 丢失的dll的名称和测试的名称已更改,当然它们还有另一个名称:)

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

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

您尝试过吗?验证
vstest.console.exe
是否从同一位置开始,并在其环境中使用相同的
路径。您可以使用Process Explorer捕获成功的
vstest.executionengine.exe
的命令行/环境。很抱歉,我回复得太晚了。正如您所想,Jeroen Mostert:)PATH变量是我使用的两个环境的另一个变量。路径中没有一个目录,因此无法找到该DLL。我在周四发现了这一点,但当时我没有发布答案。你试过了吗?验证
vstest.console.exe
是否从同一位置开始,并在其环境中使用相同的
路径。您可以使用Process Explorer捕获成功的
vstest.executionengine.exe
的命令行/环境。很抱歉,我回复得太晚了。正如您所想,Jeroen Mostert:)PATH变量是我使用的两个环境的另一个变量。路径中没有一个目录,因此无法找到该DLL。我在周四发现了这一点,但当时我没有发布答案。