类型为';System.IO.FileNotFoundException';发生在未知模块中
本文关键字:未知 模块 IO System 类型 FileNotFoundException | 更新日期: 2023-09-27 18:28:02
我正在开发一个c#应用程序,在调试运行时收到以下错误:
"System.IO.FileNotFoundException"类型的未处理异常发生在未知模块中。
附加信息:无法加载文件或程序集"Autodesk Navisworks.Timeliner.dll"或其依赖项之一。这个找不到指定的模块。
Autodesk.Navisworks.Timeliner.dll位于应用程序的调试文件夹中。我已经修复了.net框架(版本4),但它没有解决它。有什么想法可以解决这个问题吗?谢谢
在VS中启用此选项:仅我的代码选项
工具->选项->调试->常规->启用仅我的代码(仅限托管)
第一次检查-是工作目录-应用程序运行的目录:
- 右键单击项目并选择"属性"
- 单击"调试"选项卡
- 确认工作目录为空或等于bin''debug目录
如果这不是问题所在,请询问Autodesk.Navisworks.Timeliner.dll是否需要另一个不存在的dll。如果Timeliner.dll不是.NET程序集,则可以使用命令实用程序DUMPBIN
确定所需的导入。
dumpbin /imports Autodesk.Navisworks.Timeliner.dll
如果它是.NET程序集,则有许多工具可以检查依赖关系。
Reflector
已经提到了,我使用Telerik的JustDecompile
。
另请参阅此问题
如果您在64位系统上运行并试图加载32位dll,则需要将应用程序编译为32位,而不是任何cpu。如果你不这样做,它的行为与你描述的完全一样。
如果不是这种情况,请使用Dependency Walker来验证dll是否具有所需的依赖项。
在您的cofig文件中添加以下代码片段
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
我要做的是使用这个工具并逐步了解异常的位置
http://www.reflector.net/
阅读这篇文章,它将告诉你如何创建PDB,这样你就不必设置所有的引用。
http://www.cplotts.com/2011/01/14/net-reflector-pro-debugging-the-net-framework-source-code/
这是一个试用版,我与红门没有任何关系,我只是使用那里的软件。
对我来说,它发生在.net项目中,结果与我的Visual Studio安装有关。我单独下载并安装了最新的.net核心sdk,然后重新安装了VS,它就工作了。