类型为';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),但它没有解决它。有什么想法可以解决这个问题吗?谢谢

类型为';System.IO.FileNotFoundException';发生在未知模块中

在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,它就工作了。