メモリに.NETアセンブリを実行するためにAssembly.Load()
、次にEntryPoint.Invoke(null, null)
を使用しています。これは、ホストプロセスがx86で実行されているアセンブリがAnyCPUである場合を除き、動作します。この場合、実行されたアセンブリはx86コンテキストで実行され、したがって誤動作します。Assembly.Invoke()がx86およびAnyCPUと競合します
ホストプロセスがx86であっても、AnyCPUコンテキストでAssemlyオブジェクトを実行する方法はありますか?
独自のAppDomainで読み込むことができます。もちろん、リモート通信技術を使用して(リモーティング、WCFなど) – RQDQ
AnyCPUとしてビルドされた後、x86でロードされたときにアセンブリが誤動作するのはなぜですか? AnyCPUは、定義上、AnyCPUで動作するはずです。何かがそれを壊した場合、プロセスのビット安全性がどこかで違反されています。 – ssube
@RQDQ AppDomainはビット数の問題を解決しません。 – vcsjones