Как 32-битный процесс может взаимодействовать с 64-битным процессом в .NET?

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?

8
задан John Smith 30 May 2012 в 19:27
поделиться