Windows 无法让 32 位进程加载 64 位 dll,因此我尝试使用远程处理以允许 32 位进程与 64 位进程交互。
问题是:虽然这两个应用程序位于同一台机器上,一个是 32 位,另一个是 64 位,而且它们必须是这样的:同时使用 32 位或 64 位会破坏这些应用程序构建在上面的一切的。
我正在使用.NET 的System.Runtime.Remoting.RemotingConfiguration
类并调用它的Configure()
方法并将引用传递给一个App.config
文件,该文件引用MarshalByRefObject
我将通过远程访问访问的类。
我让它工作,但只要 Client、Host、MarshalByRefObject 类是 32 位或 64 位。如果我把它们混合起来,这将不起作用:我最终会得到BadImageFormatException
:
无法加载文件或程序集“
MyRemotingObject
”或其依赖项之一。试图加载格式不正确的程序。
一旦我将两个应用程序都设为 32 位或 64 位,异常就会消失,但同样,其中一个必须是 32 位,另一个必须是 64 位。
有人能告诉我如何启用 32 位 .NET 应用程序和 .64 位 .NET 应用程序之间的进程间通信吗?