“System.IO.FileNotFoundException:未能加载文件或程序”的时候,装配是否确实存在
-
20-09-2019 - |
题
由于我们从.NET 1.1迁移到.NET 3.5的一部分,我们不得不改变了几个厂商的DLL。
其中之一就是给我们的麻烦只有1点了,我们用它在4点:
在故障点是,使用反射来动态加载某些DLL运行长时间运行的进程一个视窗形式的项目。其中一个长时间运行的进程的是,依赖于我们的自动售货机的DLL中的一个的试剂
我们正在在这里我们首先进入的是引用库中的函数点缺失的组件除外。我已经检查了愚蠢的事情,例如,如果我们忘记了移动从旧版本到新版本的参考,但事实并非如此。我还检查项目的bin目录和组件是存在的。
有没有人遇到其中.NET 2.0运行时拒绝加载这样的组件的情况呢?如果是的话,我们怎么能解决这个问题。
其它信息:
在此情况下的供应商特定是dtSearch,这是其中所述错误被抛出的boundry:
Private Sub BuildIndex()
SetIndexOptions()
ExecuteIndexJob()
End Sub
Private Sub SetIndexOptions()
'Body removed for brevity
End Sub
该库在SetIndexOptions引用。 BuildIndex()
被输入,但异常发生时SetIndexOptions被调用。该功能实际上从未输入。
解决方案 3
原来默认的编译选项从VS2003改为VS2008,它是在错误的位数编译:\现在我觉得有点傻。
其他提示
如果您仍然有问题,你可以使用集绑定日志查看器( Fuslogvw.exe)以确定哪些组件是由应用程序加载。这个工具是.NET Framework的一部分。这将会为您提供所有相关组件的详细信息。
与第三方装配时,我已经在过去使用这一点,非常有用的
在FileNotFoundException异常即使当如果从属组件之一无法加载的组件确实存在被升高。
尝试使用的Dependency Walker 以检查并查看所有从属组件也存在。
不隶属于 StackOverflow