Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
C# &引用;无法加载文件或程序集';三十、 YYY';或者它的一个依赖项。系统找不到指定的文件;_C#_Visual Studio_Exception_Dll_Filenotfoundexception - Fatal编程技术网

C# &引用;无法加载文件或程序集';三十、 YYY';或者它的一个依赖项。系统找不到指定的文件;

C# &引用;无法加载文件或程序集';三十、 YYY';或者它的一个依赖项。系统找不到指定的文件;,c#,visual-studio,exception,dll,filenotfoundexception,C#,Visual Studio,Exception,Dll,Filenotfoundexception,我有一个带有许多项目(类库和web应用程序)的.NETVisualStudio解决方案 我做了一些折射,在项目之间移动文件,创建新项目,删除未使用的项目,并重命名一些现有项目 解决方案生成时没有问题,但当我运行web应用程序时,会发生以下异常: “无法加载文件或程序集'XXX.YYY'或其依赖项之一。系统找不到指定的文件。” 在折射中删除的名为XXX.YYY的项目输出了名为XXX.YYY的dll。但这在应用程序中的任何地方都没有使用。我删除了web应用程序obj目录和bin文件夹并重新生成,但仍

我有一个带有许多项目(类库和web应用程序)的.NETVisualStudio解决方案

我做了一些折射,在项目之间移动文件,创建新项目,删除未使用的项目,并重命名一些现有项目

解决方案生成时没有问题,但当我运行web应用程序时,会发生以下异常:

“无法加载文件或程序集'XXX.YYY'或其依赖项之一。系统找不到指定的文件。”

在折射中删除的名为XXX.YYY的项目输出了名为XXX.YYY的dll。但这在应用程序中的任何地方都没有使用。我删除了web应用程序obj目录和bin文件夹并重新生成,但仍然发生

有没有人知道什么时候会发生这种情况,有什么建议

更新:

更新我的问题。我将代码转移到另一台计算机上,并从那里运行它,它成功地构建并运行,而没有出现此问题。因此,这让我认为问题在于我的电脑,而不是代码库。可能我的电脑上缓存了一些东西。我确实删除了“C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET files”中的临时文件,但运气不好

因此,任何其他可以缓存的内容,或者任何其他原因导致它出现在我的电脑上

进一步更新

这方面的另一个更新。我在其他开发人员的机器上运行了相同的代码,他在运行时没有问题。所以我的机器上肯定有东西!我们机器上唯一不同的是,我在经典模式下运行IIS7,应用程序的应用程序池。另一个开发人员正在运行IIS6

2条新的信息。首先,在web.config中的httpmodules中,我必须在添加自定义http模块之前删除它。其他开发人员不必这样做。其次,我已经能够通过“黑客”修复“无法加载文件或程序集'XXX.YYY'或其依赖项之一”问题,这只是一个短期修复,通过在我的项目中创建一个名为XXX.YYY的类库,包括正在查找的类,这些都是自定义控件,即继承自System.Web.UI.WebControl.WebControl


任何进一步的想法…

只需检查项目构建配置。。如果您的引用上有一个64位编译的dll,并且您的主项目是32位的(或者任何cpu和您的机器是32位的),或者反之亦然,那么您将得到此错误

使用(依赖于)依赖于您的所有EXE和dll,以查看缺少的依赖项。您应该从项目的工作目录运行Dependes以获得最佳结果

一旦你知道哪个EXE/DLL是罪魁祸首,进入该项目的设置,看看那里是否提到了对依赖性的抱怨

编辑:几分钟前我发生了另一件事。。。 如果您的任何依赖项被“阻止”,因为它们被某些MS tardware标记为已下载(例如,当您使用Inet explorer进行DL时),这可能会阻止加载可执行代码。使用Windows资源管理器查看可执行文件(DLL/EXE)的属性,并查看它们在第一页上是否有取消阻止按钮。如果是,请单击该按钮。
我花了一些时间才弄明白,希望能有所帮助。

搜索文本“XXX.YYY”并删除所有出现的问题。也许您在某个web.config文件中遗漏了某些内容


此外,如果解决方案搜索未找到任何内容,则可以检查*.csproj文件。它们基本上是文本文件,因此删除引用应该没有问题。

您只是缺少一个依赖项。这种情况可能类似于项目a引用了项目B,而项目B引用了项目C。您的输出目录缺少项目C的DLL。

可能有两个原因

1) 当您运行webapp时,您仍然会在计算机上的某个位置使用旧程序集。您的旧程序集正在引用旧程序集“XXX.YYY”

2) 您构建的最新二进制文件仍在引用旧程序集“XXX.YYY”

要了解webapp使用的程序集,如果您正在运行调试器,则可以从输出窗口轻松找到它。它应该是输出的前几行。另一种方法是在调试期间在VS.NET IDE中打开模块窗口

如果由于某些原因无法调试它,或者在附加调试器时遇到问题,另一种更简单的方法是使用。它为您提供所有成功加载的assemblis以及未能加载的assemblis的确切位置。请确保在Windows 7中以管理员身份运行fuslogvw

找出webapp成功加载的程序集后,可以对这些程序集执行ildasm以查看它们引用的程序集。不幸的是,你需要逐一检查


我的猜测是,您成功加载的一些程序集实际上来自ASP.NET缓存或GAC中的某个地方。

好消息,我已经解决了这个问题!!!我必须重新安装.net运行时环境。我还从IIS中删除了网站,并重新阅读了该网站。当我运行它时,问题并没有发生,站点运行了


非常感谢大家的帮助和帮助,非常感谢。所有的建议和帮助引导我朝着解决这个问题的方向前进

为生成输出启用诊断日志记录(工具->选项->生成和运行->输出日志详细信息->诊断),并生成解决方案,然后查看Visual Studio从何处选择dll(somedll.dll版本xxx.yy)。现在运行应用程序并查看运行时试图解析dll的位置。(Windbg是一个选项)

转到
Visual Studio中的
解决方案资源管理器中的
参考
。选择要修改的部件。选择它并转到