模块中发生.NET异常(TypeLoadException)

时间:2011-03-16 05:41:16

标签: c# exception dll

我有一个Visual Studio项目,其中包含许多我在程序中使用的商业DLL文件。 到目前为止,我已经使用了很多这些DLL文件而没有任何问题。

昨天我不得不使用另一个DLL文件。我链接DLL文件作为参考(像往常一样),我可以看到它被添加到项目,因为代码完成工作,我可以成功构建项目。

但是当我在目标PC上运行它时,我得到一个TypeLoadException。

A .NET exception (TypeLoadException) occured in the module

我试图抓住并打印异常中的确切信息,但我根本没有帮助。

以下是我收到的完整例外情况:

A .NET exception (TypeLoadException) occured in the module LightSwitch\nError message: Could not load type 'Backbone2.LightMode_Status_Ctr_1' from assembly 'Backbone2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.\nThrowing method: DiagModule.SetSwitch\n

(我无法执行任何调试并提供更多信息,因为我将我的项目构建为dll,然后在目标PC上使用,实际上我可以在我的PC上运行该程序,因为它缺少所有必需的硬件)

5 个答案:

答案 0 :(得分:1)

检查dll是否与您的电脑构建的架构相同。我的意思是,如果你的电脑是64位,请确保dll是相应的,反之亦然

答案 1 :(得分:1)

感谢所有回复,我设法找到了问题。 问题是该项目包含几个库文件(dll),在不同的文件夹中有不同的版本。在运行时(仍然不知道原因)将选择一个DLL文件,并且由于不同版本之间的文件不同,因此缺少某些方法。因此,将DLL文件更新到所有文件夹中的相同版本可以解决问题。

答案 2 :(得分:0)

检查DLL是否位于目标PC上的正确位置(或GAC中)。

答案 3 :(得分:0)

启动FusLogVw.exe - 它是.Net SDK的一部分,可以从VS 2010命令提示符启动。配置日志记录以记录所有故障。重现问题,在FusLogVw.exe窗口中刷新视图。您应该能够找到与您的问题相对应的记录,它将准确地告诉您它正在做什么,您应该能够找出如何纠正问题。

答案 4 :(得分:0)

检查您是否引用了DLL的一个版本,并在运行时加载了另一个版本(来自GAC)。