Windows不允许32位进程加载64位dll,因此我正在尝试使用远程调用来实现32位进程与64位进程的交互。
问题在于:虽然这两个应用程序位于同一台计算机上,但其中一个是32位的,另一个是64位的,并且必须保持这种方式:使它们都是32位或64位会破坏这些应用程序所构建的一切。
我正在使用.NET的System.Runtime.Remoting.RemotingConfiguration
类,并调用其Configure()
方法,传递一个对App.config
文件的引用,该文件引用了我将通过远程调用访问的MarshalByRefObject
类。
我已经让它工作了,但只有在客户端、主机和MarshalByRefObject类都是32位或64位时才能正常工作。如果我混合它们,这将无法工作:我最终会得到一个BadImageFormatException
:
无法加载文件或程序集'
MyRemotingObject
'或其某个依赖项。尝试加载格式不正确的程序。
只要我让两个应用程序都是32位或64位,异常就会消失,但再次强调,其中一个必须是32位,另一个必须是64位。
有人能告诉我如何在32位.NET应用程序和64位.NET应用程序之间启用进程间通信吗?