【问题标题】:Visual C# "Could not load file or assembly or one of its dependencies"Visual C#“无法加载文件或程序集或其依赖项之一”
【发布时间】:2012-10-11 23:03:24
【问题描述】:

我看过这个问题,我在网上找到了很多关于它的条目.. 但没有一个我能理解。也许你能帮忙? 我有一个 dll 文件(从 c 脚本创建),我使用 Visual C# 2010 为我的程序创建了一个 GUI。 我已经在 5 台不同的计算机上测试了我的应用程序。 在我的计算机和我创建应用程序的计算机上,用户界面和程序运行没有任何问题。 但是,当我将它传递给其他计算机时,我在程序执行后收到以下错误行(这意味着用户界面打开,但是当我插入所有值并运行存储在 dll 文件中的代码时,我收到错误) “无法加载文件或程序集“ParsingDll.dll”或其依赖项之一。找不到指定的模块。”

所有计算机都运行 microsoft windows 7 并且是 64 位的。 dll文件“ParsingDll.dll”是包含我的GUI执行代码的文件,它与可执行文件位于同一文件夹中。

如果有人能帮我解决这个问题,我将不胜感激,并与我一起逐步完成,因为我是这类东西的新手。

非常感谢大家。

【问题讨论】:

  • 不要忘记在项目中包含用于创建 C dll 的 dll。
  • 整个错误消息很重要:“无法加载文件或程序集“ParsingDll.dll”或其依赖项之一。” (强调补充)。听起来它可以找到 ParsingDll.dll 就好了,但不是它需要的东西。
  • 如果您不知道您的本地 DLL 有哪些依赖项,那么 SysInternals 的 ProcMon 实用程序可以告诉您。您会看到您的进程正在寻找 DLL 而没有找到它。它很有可能是一个名为 msvcrxxx.dll 的文件,其中 xxx 是一个数字。您可以使用 C 项目中的 /MT 编译选项来避免这种依赖关系。
  • @Benjamin 我尝试添加文件夹中使用的所有 dll 文件.. 仍然没有工作。 w
  • 这些是加载的程序集(错误说明上有什么鞋)我在那里看不到“ParsingDll.dll”

标签: c# .net visual-studio-2010 dll


【解决方案1】:

其中一个使用的程序集可能需要一个不可用的(本机)库。

您可以启用融合日志记录以找出导致问题的确切原因:

这会记录加载的内容,融合加载器在哪里寻找程序集,在注册表中打开融合日志记录:

将以下值添加到

 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

添加:

 DWORD ForceLog set value to 1
 DWORD LogFailures set value to 1
 DWORD LogResourceBinds set value to 1
 String LogPath set value to folder for logs e.g. C:\FusionLog\

此文件夹必须存在,并以反斜杠结尾

(从How to enable assembly bind failure logging (Fusion) in .NET复制的指令)

【讨论】:

  • Fusion 不跟踪本机 DLL 的依赖关系。
  • @HansPassant 根据你的名字我愿意怀疑自己。但我相当确定我不止一次看过它。我在“本机”/“托管”IIRC 中很好地拆分了一个日志目录结构
  • 您看到“原生图像”正在加载。由ngen.exe通过pre-jitting程序集生成,名称以“.ni.dll”结尾
  • @HansPassant 啊。这就解释了。仍然可以使用 DependencyWalker 从混合模式程序集转到间接(本机)依赖项,对吗?仍然,没有集成。好点
【解决方案2】:

导入dll,编译包括dll在内的所有项目。如有必要,刷新、重新启动、重新启动计算机。确保 DLL 存在于计算机上。重新启动,刷新,重新编译,清理应该可以修复它。

【讨论】:

  • 这将提供什么帮助?如果程序在一台机器上执行(已经编译) - 重新编译不会解决问题。这听起来像是标准的 IT 支持人员告诉用户重新启动他们的机器 3 次,看看它是否工作......正如其他用户所说 - 不工作的机器存在环境问题(缺少 dll,AV 阻塞,等)。
【解决方案3】:

检查您的 ParsingDll.dll 是否被阻止。您可以通过查看 dll 文件的属性来检查。如果被屏蔽,会有一个“解除屏蔽”按钮。

【讨论】:

    猜你喜欢
    • 2021-12-12
    • 2012-01-14
    • 1970-01-01
    相关资源
    最近更新 更多