未知模块中发生“System.IO.FileNotFoundException”类型的未处理异常

Posted

技术标签:

【中文标题】未知模块中发生“System.IO.FileNotFoundException”类型的未处理异常【英文标题】:An unhandled exception of type 'System.IO.FileNotFoundException' occurred in Unknown Module 【发布时间】:2012-03-15 23:23:19 【问题描述】:

我正在开发一个 c# 应用程序,但在调试运行时出现以下错误:

“System.IO.FileNotFoundException”类型的未处理异常 发生在未知模块中。

附加信息:无法加载文件或程序集 “Autodesk.Navisworks.Timeliner.dll”或其依赖项之一。这 找不到指定的模块。

Autodesk.Navisworks.Timeliner.dll 位于应用程序的调试文件夹中。我已经修复了 .net 框架(版本 4),但它没有解决它。关于如何解决这个问题的任何想法?谢谢。

【问题讨论】:

【参考方案1】:

在 VS 中启用此选项:仅我的代码选项

工具 -> 选项 -> 调试 -> 常规 -> 仅启用我的代码(仅限托管)

【讨论】:

【参考方案2】:

首先检查 - 工作目录是应用程序运行所在的目录:

右键单击您的项目并选择属性。 单击“调试”选项卡。 确认工作目录为空或等于 bin\debug 目录。

如果这不是问题,则询问 Autodesk.Navisworks.Timeliner.dll 是否需要另一个不存在的 DLL。 如果 Timeliner.dll 不是 .NET 程序集,您可以使用命令实用程序 DUMPBIN 确定所需的导入。

dumpbin /imports Autodesk.Navisworks.Timeliner.dll

如果是 .NET 程序集,有很多工具可以检查依赖关系。

Reflector 已经被提及,我使用 Telerik 的 JustDecompile


另见this question

【讨论】:

我使用 Net.reflector 反编译了 dll,查看了引用,并添加了所有必需的依赖项。只能添加对“msorlib”的引用,因为它已被构建系统引用。发生同样的错误 Reflector 比 JustDecompile 有一些优势,请参阅编辑后的答案【参考方案3】:

如果您在 64 位系统上运行并尝试加载 32 位 dll,您需要将应用程序编译为 32 位而不是任何 cpu。如果您不这样做,它的行为与您描述的完全一样。

如果不是这样,请使用Dependency Walker 来验证 dll 是否具有所需的依赖项。

【讨论】:

我使用 Net.reflector 反编译了 dll,查看了引用,并添加了所有必需的依赖项。只能添加对“msorlib”的引用,因为它已被构建系统引用。发生同样的错误 在新机器上运行旧项目。这个答案让我意识到这一切都是由目标 x64 而不是 x86 引起的。【参考方案4】:

在你的配置文件中添加以下代码n-p

<startup useLegacyV2RuntimeActivationPolicy="true">
   <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

【讨论】:

【参考方案5】:

我会做的是使用这个工具并逐步检查你在哪里得到异常

http://www.reflector.net/

阅读本文,它将告诉您如何创建 PDB,因此您不必设置所有参考。

http://www.cplotts.com/2011/01/14/net-reflector-pro-debugging-the-net-framework-source-code/

这是一个试用版,我与 redgate 完全没有关系,我只是使用那里的软件。

【讨论】:

我使用 Net.reflector 反编译了 dll,查看了引用,并添加了所有必需的依赖项。只能添加对“msorlib”的引用,因为它已被构建系统引用。发生同样的错误 更新了我的答案以提供更多信息【参考方案6】:

对我来说,它发生在一个 .net 项目中,结果与我的 Visual Studio 安装有关。我单独下载并安装了最新的.net core sdk,然后重新安装了VS,它就可以工作了。

【讨论】:

以上是关于未知模块中发生“System.IO.FileNotFoundException”类型的未处理异常的主要内容,如果未能解决你的问题,请参考以下文章

安装 VS 2012 后无法编译我的 c++ 项目

如何在模块中加载未知类?

Firebase 存储:发生未知错误,请检查错误负载以获取服务器响应

模块构建失败:未知单词(2:9)| bundle / webpack的问题(react,redux,js,node)

Xcode 中发生未知错误

OSGi未知的错误