我正在使用Assembly.Load()
然后使用EntryPoint.Invoke(null, null)
以便在内存中运行.NET程序集。这是有效的,除非主机进程是x86并且执行的程序集是AnyCPU。在这种情况下,执行的程序集在x86上下文中执行,因此会出现故障。
有没有办法在AnyCPU上下文中执行Assemly对象,即使主机进程是x86?
答案 0 :(得分:1)
在AnyCPU上下文中执行程序集并没有多大意义。如果加载到64位进程中,则针对AnyCPU的程序集将JIT设置为64位,而对于32位进程则为32位。如果此程序集依赖于64位的主机进程,那么它的平台目标应该是x64而不是任何CPU。