为什么Shadow Task没有找到引用的DLL?

时间:2013-02-09 21:11:24

标签: visual-studio-2012

从VS2010迁移的单元测试项目仍然使用自动生成的私有属性访问器。

经过数小时编码和测试包含类库项目的解决方案,类库项目的单元测试项目和Web项目,突然出现错误。 Web项目在IIS Express下执行。

  

错误24无法加载文件或程序集'TheClassLibrary,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一。该系统找不到指定的文件。 The.ClassLibrary.Tests

事实

  • TheClassLibrary.Tests有一个对The.ClassLibrary的项目引用。
  • 没有其他构建错误(已检查构建输出而不仅仅是错误窗口)
  • DLL实际上以bin\debug
  • 中的当前时间戳显示
  • 我重新启动了IIS Express
  • 我重新启动了Visual Studio
  • 清理/重建解决方案

1 个答案:

答案 0 :(得分:0)

选项A

解决此问题。它可能会再次发生。

除了尝试的步骤之外,还需要在磁盘上搜索和删除所有出现的The.ClassLibrary.Dll。所以,完整的程序是:

  • 停止IIS Express
  • 退出Visual Studio 2012
  • 搜索并删除“缺失”DLL的所有实例。
  • 启动Visual Studio 2012

我希望这有助于某人。

选项B

正确解决问题

私有访问者在VS2012中折旧。相反,请将私有内容显示为单元测试内部,并使用项目AssemblyInfo.cs中的InternalsVisibleTo属性测试允许测试项目访问测试主题的内部属性,方法和字段。

AssemblyInfo.cs (MyProject)

[assembly: InternalsVisibleTo("MyNs.MyProject.Tests")]