Assembly.Invoke()与x86和AnyCPU冲突

时间:2012-02-10 19:45:43

标签: c# assemblies anycpu

我正在使用Assembly.Load()然后使用EntryPoint.Invoke(null, null)以便在内存中运行.NET程序集。这是有效的,除非主机进程是x86并且执行的程序集是AnyCPU。在这种情况下,执行的程序集在x86上下文中执行,因此会出现故障。

有没有办法在AnyCPU上下文中执行Assemly对象,即使主机进程是x86?

1 个答案:

答案 0 :(得分:1)

在AnyCPU上下文中执行程序集并没有多大意义。如果加载到64位进程中,则针对AnyCPU的程序集将JIT设置为64位,而对于32位进程则为32位。如果此程序集依赖于64位的主机进程,那么它的平台目标应该是x64而不是任何CPU。