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

时间:2012-03-15 23:23:19

标签: c# exception runtime

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

  

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

     

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

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

6 个答案:

答案 0 :(得分:11)

在VS中启用此选项:Just My Code选项

工具 - >选项 - >调试 - >一般 - >启用我的代码(仅限管理)

答案 1 :(得分:7)

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

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

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

dumpbin /imports Autodesk.Navisworks.Timeliner.dll

如果它是.NET程序集,则有许多工具可以检查依赖项。

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

<小时/> 另请参阅this question

答案 2 :(得分:4)

如果您在64位系统上运行并尝试加载32位DLL,则需要将应用程序编译为32位而不是任何cpu。如果你没有这样做,它的行为就像你描述的那样。

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

答案 3 :(得分:1)

在您的cofig文件中添加以下codesnippet

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

答案 4 :(得分:0)

我要做的是使用此工具并逐步完成获取异常的位置

http://www.reflector.net/

阅读本文将告诉您如何创建PDB,这样您就不必设置所有参考文件。

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

这是一个试验,我与redgate完全无关,我只是使用那里的软件。

答案 5 :(得分:0)

对我来说,这是在.net项目中发生的,事实证明与我的Visual Studio安装有关。我分别下载并安装了最新的.net core sdk,然后重新安装了VS,它可以正常工作。