从32位C#应用程序加载64位C#dll

时间:2015-12-10 07:25:43

标签: c# .net dll

我有64位dll Test.dll。 通过32位exe的reflation加载此dll。

AssemblyName name = AssemblyName.GetAssemblyName("Test.dll"); 
assembly = Assembly.Load(name);

但是Load方法给出了以下异常:

  

未处理的类型' System.BadImageFormatException'   发生在TestDll.exe中"无法加载文件或程序集'测试,   Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其中一个   依赖。尝试加载程序不正确   。格式"

任何人都可以建议如何解决这个问题吗?

1 个答案:

答案 0 :(得分:-1)

要使用Load方法,必须使用程序集的QualifiedName。如果您只使用字符串,则实例化可能不明确,并且不起作用。请查看如何在官方文档中使用此方法。

https://msdn.microsoft.com/en-us/library/system.reflection.assembly.load(v=vs.110).aspx

这是一个stackoverflow线程,人们会谈论这个。

How to get C#.Net Assembly by name?