我被困在DLL地狱中。我有一个在我的项目中引用的.dll。我将它称为project.dll。 Project.dll是由Visual Studio 2012创建的。我通过浏览到bin目录引用了project.dll。我可以在目录中看到它。
一旦我尝试调试到project.dll,Visual Studio就像是不存在的东西。它反过来给了我一个屏幕,上面写着“Filename.cs”。“(它看起来好吗?)Filename.cs是project.dll的一部分。它让我可以选择浏览到filename.cs,我尝试然后,我得到一个错误,说源文件与构建模块的时间不同。这没有任何意义,因为我只是BUILT project.dll并引用它。我还应该添加错误具有以下内容:< / p>
来源:Filename.cs的正确路径
模块:空白
处理:空白
我已经尝试了以下所有内容,但没有解决这个问题:
如何让Visual Studio 2012识别project.dll和filename.cs都存在且版本正确?此外,或许更重要的是,我如何防止将来发生此BS?
编辑:我刚注意到“浏览到文件”屏幕,文本框中显示“原始位置”,后面是我的机器上不存在的路径。我相信这是问题的一部分。如何让Visual Studio停止查看该无效路径,而是查看引用project.dll的正确路径?答案 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?