.net 单元测试项目找不到正在测试的程序集(或依赖项)

.net 单元测试项目找不到正在测试的程序集(或依赖项),.net,visual-studio,visual-studio-2010,unit-testing,compiler-errors,.net,Visual Studio,Visual Studio 2010,Unit Testing,Compiler Errors,当我尝试运行单元测试项目时,出现以下错误: 无法加载文件或程序集“assembly\u NAME,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一 系统找不到指定的文件 测试中的程序集位于同一个解决方案和每个项目目标.NET 4.0 framework中。 它工作了一段时间,但今天我又犯了这个错误。 我不知道出了什么问题,因为错误消息没有告诉我足够的信息。(类似;找不到哪个文件…) 我试图添加一个新的测试项目,但在它给我同样的

当我尝试运行单元测试项目时,出现以下错误:

无法加载文件或程序集“assembly\u NAME,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一

系统找不到指定的文件

测试中的程序集位于同一个解决方案和每个项目目标.NET 4.0 framework中。 它工作了一段时间,但今天我又犯了这个错误。 我不知道出了什么问题,因为错误消息没有告诉我足够的信息。(类似;找不到哪个文件…)

我试图添加一个新的测试项目,但在它给我同样的错误消息之前,这个项目工作了一段时间

有没有人能给我指出正确的方向

编辑:在诊断生成日志中,出现以下错误:

C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\TeamTest\
Microsoft.TeamTest.targets(14,5): 
error : Could not load file or assembly 'ASSEMBLY_NAME, Version=1.0.0.0, 
Culture=neutral, PublicKeyToken=null' or one of its dependencies. 
The system cannot find the file specified.

Done executing task "BuildShadowTask" -- FAILED. (TaskId:671)

Done building target "ResolveTestReferences" in 
      project "ASSEMBLY_NAME.Tests.vbproj" -- FAILED.: (TargetId:985)

检查
Build->configurationmanager…
菜单。所有项目都应选中相同的平台和列
Build


您还可以查看构建的输出(
output
窗口),它通常会更清楚地说明找不到哪个文件。

执行单元测试时有一个常见错误:execution文件夹

您确定您的单元测试正在正确的文件夹中运行吗?不在著名的obj文件夹中

obj文件夹中,仅复制生成的程序集,而不复制依赖项-甚至复制本地true-。
因此,如果您的测试是从该文件夹启动的,那么所有依赖项都将丢失。

也许启用程序集加载日志可以提示您为什么无法加载程序集


在查看了一些其他搜索结果后,我在SA遇到了这个问题

在我删除了*.accessor文件后,我的测试项目停止抱怨,并成功编译


谢谢大家的帮助

我也遇到了同样的问题,并发现将dll复制到GAC解决了这个问题。尽管我仍然不明白为什么它不使用引用的项目程序集。

引用->标记DLL->右键单击->属性->将本地集复制为true

另一个可能的原因是,单元测试项目的程序集名称与被测试的程序集使用相同的名称。(即确保您的单元测试程序集名称是唯一的)。

我尝试了以上所有方法,但均无效。最后,在csproj中,我改变了

<Private>False</Private>
False

True

参考资料和所有测试均通过

确保选择了依赖项>编辑引用>项目(您的项目),而不是项目的.net程序集

我有此错误,我通过更新NUGET软件包来修复它

这是因为我在解决方案中的一个项目引用了同一解决方案中包含的另一个项目的非常旧的编译版本

当我在VisualStudio中使用“RunAll”测试时,我想它会复制项目的“当前”输出,然后复制nuget包依赖项DLL,如果它们具有相同的名称,则会覆盖原始数据。(完全是猜测)


当我查看错误消息时,我可以看到我的项目引用的是依赖项的“0.0.10版”,但我的解决方案包含的项目一直到“0.0.30版”,差异如此巨大。

谢谢您的评论,但我确信我使用的是调试文件夹。编译解决方案时,我已经遇到了异常。这可能是我的问题,但是如何编辑“测试运行/启动文件夹”?在大多数情况下,测试运行程序(MSTest、NUnit…)在一个文件夹中处理单元测试。检查日志中的testrunner命令行。一个常见的错误是有一个未定义的测试文件夹,这意味着要运行在解决方案及其子目录中找到的所有测试。MSTest的Ex:。定义测试文件夹是另一个问题,它取决于运行测试的产品和执行上下文。谢谢您的评论。解决方案中的每个项目都设置为debug/anyCpu。乍一看,输出窗口没有给出更多细节。我将再次检查它在“工具”>“选项”>“项目和解决方案”>“生成和运行”中,您可以将MSBuild项目生成输出详细信息设置为“详细”或“诊断”,以检查ResolveAssemblyReferences目标所说的内容。遗憾的是,诊断日志没有告诉我新的内容。完全相同的错误消息,没有任何进一步的(有用的)详细信息。@Rhapsody,我已尝试重现该问题,如果未找到
程序集或依赖项
我在输出窗口中有以下内容:
错误CS0006:找不到元数据文件“{FULL_assembly\u PATH}
。请确保选择了
show output from:Build
。@Snowbear很遗憾,输出日志中没有出现“CS0006”、“Metadata”和“找不到”等关键字(选择了Build)。非常感谢您尝试重现此问题!)“程序集绑定日志查看器”显示为空屏幕,并且“查看日志”按钮被禁用。是否已启用程序集加载日志?它被默认设置禁用在第二次启动(并打开日志记录)后,我可以看到一些日志记录。我还没有发现任何有用的东西,但我一直在寻找。我注意到这是一个解决错误的方法。但是现在,我所有依赖于该访问器的测试都不再编译。
<Private>True</Private>