Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 Visual Studio 2012拒绝查找引用的.dll_Visual Studio 2012_Dll - Fatal编程技术网

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

Visual studio 2012 Visual Studio 2012拒绝查找引用的.dll,visual-studio-2012,dll,Visual Studio 2012,Dll,我被困在地狱里。我的项目中引用了一个.dll。我将把它称为project.dll。Project.dll是由Visual Studio 2012创建的。我通过浏览project.dll的bin目录引用了它。我可以在目录中看到它 当我试图调试到project.dll中时,VisualStudio就表现得好像这个东西不存在一样。相反,它给了我一个屏幕,上面写着“Filename.cs”找不到Filename.cs是project.dll的一部分。它让我可以选择浏览到Filename.cs,我会尝试这

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

当我试图调试到project.dll中时,VisualStudio就表现得好像这个东西不存在一样。相反,它给了我一个屏幕,上面写着“Filename.cs”找不到Filename.cs是project.dll的一部分。它让我可以选择浏览到Filename.cs,我会尝试这样做。然后,我收到一个错误,说源文件与生成模块时不同。这没有任何意义,因为我只是生成了project.dll并引用了它。我还应该补充一点,该错误有以下内容:

来源:Filename.cs的正确路径

模块:空白

流程:空白

我尝试了以下所有方法,但没有任何方法可以解决此问题:

  • 对两个项目进行清理/构建/重建(达到我想呕吐的程度)
  • 清除浏览器缓存
  • 删除临时文件
  • 删除C:\Windows\Microsoft.NET\Framework\v4.0.30319\临时ASP.NET文件下的所有内容
  • 正在验证GAC中是否不存在project.dll
  • 多次退出并重新启动Visual Studio
  • 重新启动计算机
  • 删除引用,然后重新添加引用
  • 从其他项目的bin文件夹手动删除project.dll
  • 尖叫
  • 如何让Visual Studio 2012识别project.dll和filename.cs都存在并且是正确的版本?此外,也许更重要的是,如何防止将来出现这种错误

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

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


    发生的情况是,您的软件显然没有加载您构建的project.dll,而是加载另一个查看:调试>窗口>模块。浏览到列表中的项目dll,您可以找到加载它的确切位置。现在,您只需确保用您的副本覆盖确切的project.dll(或更改加载方式,以便加载您的project.dll)。

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


    让我困惑的是,为什么不“清理”删除过时版本的MyMainWebService.dll

    似乎是提出这个问题的好地方@huMptyduMpty这看起来像是一个开发人员的问题,不是。您对原始位置熟悉吗?我看到它现在不存在了,但它是以前在您的机器上存在的位置吗?或者它是完全不熟悉的,而且是在其他开发人员的机器上?嗨,Csaba Toth。为project.dll指定的路径位于“C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root”下。我在那里看到一个名为“AssemblyInfo.ini”的文件。该文件中有指向project.dll的正确路径。它如何在临时文件夹中查找该文件?我一直从这里删除。要回答您前面评论中的其他问题。。。路径来自另一个开发人员的机器。在您的情况下,ASP.NET部署会使事情稍微复杂一些,并添加一个额外的步骤。现在,您必须找到该project.dll(由您的开发伙伴编译)的另一个副本。它就是从那里部署到临时文件夹中的。从该临时文件夹中删除任何内容都不会有帮助,因为它是由IIS维护和设置的。您必须找到IIS将该dll的伪造版本放在何处(或者从另一个角度看,VS将该文件提供给它)。仔细检查ASP.NET项目中对project.dll的程序集引用。您可以找到项目引用的绝对或相对路径(存储在csproj文件中)。也许这会给我们一些启示。