Visual Studio 2012拒绝查找引用的.dll

时间:2013-11-21 16:46:53

标签: visual-studio-2012 dll

我被困在DLL地狱中。我有一个在我的项目中引用的.dll。我将它称为project.dll。 Project.dll是由Visual Studio 2012创建的。我通过浏览到bin目录引用了project.dll。我可以在目录中看到它。

一旦我尝试调试到project.dll,Visual Studio就像是不存在的东西。它反过来给了我一个屏幕,上面写着“Filename.cs”。“(它看起来好吗?)Filename.cs是project.dll的一部分。它让我可以选择浏览到f​​ilename.cs,我尝试然后,我得到一个错误,说源文件与构建模块的时间不同。这没有任何意义,因为我只是BUILT project.dll并引用它。我还应该添加错误具有以下内容:< / p>

来源:Filename.cs的正确路径

模块:空白

处理:空白

我已经尝试了以下所有内容,但没有解决这个问题:

  1. 清理/构建/重建两个项目。 (到了我想要呕吐的地步)
  2. 清除浏览器缓存
  3. 删除临时文件
  4. 删除C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files
  5. 下的所有内容
  6. 验证GAC中不存在project.dll。
  7. 多次退出并重新启动Visual Studio。
  8. 重新启动计算机。
  9. 删除引用,然后重新添加引用。
  10. 从其他项目的bin文件夹中手动删除project.dll。
  11. 尖叫。
  12. 如何让Visual Studio 2012识别project.dll和filename.cs都存在且版本正确?此外,或许更重要的是,我如何防止将来发生此BS?

    编辑:我刚注意到“浏览到文件”屏幕,文本框中显示“原始位置”,后面是我的机器上不存在的路径。我相信这是问题的一部分。如何让Visual Studio停止查看该无效路径,而是查看引用project.dll的正确路径?

2 个答案:

答案 0 :(得分:0)

从为加载的特定 project.dll实例找到的调试信息中扣除“原始位置”。它是在构建project.dll时添加的。

正在发生的事情是你的软件显然没有加载你构建的project.dll,而是另一个。要找出哪一个,请打开Visual Studio的“模块”视图:Debug&gt; Windows&gt;模块。浏览到列表中的项目dll,您可以找到加载它的确切位置。现在你只需要确保用你的副本覆盖那个确切的project.dll(或者改变它的加载方式,这样就可以加载你的。)

答案 1 :(得分:0)

我不确定为什么这最终解决了它,但我注意到MyMainWebService.dll(引用project.dll的项目)上的日期已经过时。我手动删除了这个.dll以及那里的project.dll版本。然后我构建了解决方案,它找到了project.dll的正确版本。 (它还构建了MyMainWebservice.dll的正确日期。)

令我感到困惑的是为什么没有做“清理”删除过时版本的MyMainWebService.dll?