一个特定的问题:无法加载文件或程序集'xxxx'或其某个依赖项。系统找不到指定的文件。

3

继承的C#窗体应用程序 - VS .NET 2008。

项目构建无误。

在IDE中导航以显示主对话框,错误屏幕显示错误。

.dll位于bin目录中。此外,在项目查看器中“引用”树下具有正确路径。

(所有支持文件/dll都应该在这里。)

有什么想法如何解决这个问题吗?

编辑1 启动Fuslogvw.exe没有列出任何内容。我需要做其他事情才能在此处显示此错误吗?

编辑2 运行“Dependency Walker”,它会出现以下错误:

Error: At least one required implicit or forwarded dependency was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

无法打开2个Windows System32 DLL文件....


1
使用fuslogvw.exe来解决程序集解析问题。它也可以在设计时工作。 - Hans Passant
@HansPassant:它已经启动并且没有显示任何错误...? - T.T.T.
可能是FileNotFoundException when loading dll的重复问题 - 请查看Debugging Assembly Loading Failures (http://blogs.msdn.com/b/suzcook/archive/2003/05/29/57120.aspx)以获取有关使用fuslogvw的详细信息。 - Alexei Levenkov
我不认为这是一个程序集绑定失败... - T.T.T.
如果你的代码依赖于外部 DLL,仅仅在 IDE 中引用它可能是不够的。尝试在“项目属性 -> 引用路径”下添加 bin 目录的完整路径,看看是否有帮助。 - AVIDeveloper
1个回答

2
我决定回答这个问题,因为:
  1. 我自己也在寻找答案,而且这个问题在谷歌搜索中排名很高,但没有得到答案;
  2. "可能重复"并不能帮助我解决问题。
好的,以下是我的情况概述,你会发现它几乎与 OP 的情况相同:
  • C# 项目/解决方案 - VS .NET 2013。
  • 项目编译没有错误。
  • 参考的 .dll 文件在预定义的目录中。
  • 此外,在项目查看器中的 "引用" 树下,它显示了正确的路径。
然而,Visual Studio 在运行时仍然出现错误提示:
Could not load file or assembly xxxxxx, Version=x.x.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxx or one of its dependencies. The system cannot find the file specified.

我在这里找到了解决方案,http://blogs.msdn.com/b/asiatech/archive/2013/01/09/how-to-resolve-the-could-not-load-file-or-assembly-issues-on-windows-azure-web-sites.aspx

即在Visual Studio中:

  1. 在“解决方案资源管理器”中找到引用的程序集,例如Microsoft.WindowsAzure.StorageClient。
  2. 在“属性”窗口中将“复制本地”设置为“True”。

answer

这可能不是最理想的修复方法,但它解决了我的问题。如果它对您有帮助,请点击+1(投票)。谢谢。


感谢您的回答。在阅读问题时,我本来猜测其中一个引用程序集是为32位架构构建的,而在运行于IIS服务器/WebApp实例时(默认情况下)禁用了加载32位程序集的支持。据我所知,这两种原因都会导致您遇到的症状。 - DJFliX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接