2010-11-15 6 views
7

Мне интересно: могу ли я загрузить 32-битную x86-dll в качестве второго AppDomain в 64-битную среду приложений?Различные платформы AppDomains в одном .NET-процессе?

Для получения более подробной информации:

1) Основная EXE 64 бит C# чистое .NET 4 App;

2) Модуль является сторонней оболочкой .net 2.0 некоторой неуправляемой dll x86;

Могу ли я создать второй 32-разрядный AppDomain в 64-разрядной сети .net 4 и загрузить 32-битный модуль в новый созданный 32-разрядный AppDomain? А затем маршал между 64-битным AppDomain и вторым 32-битным AppDomain?

Благодарим за любые советы!

+0

Что случится, если вы попробуете? –

+0

Исключение System.BadImageFormatException происходит в kernelbase.dll;) – Edward83

ответ

7

Это невозможно, битность - это свойство процесса, а не свойство appdomain. Чтобы выполнить эту работу, вам нужно будет загрузить эту DLL в отдельный процесс. Используйте стандартные механизмы .NET IPC, чтобы поговорить с ним. Именованные каналы, сокеты, удаленный доступ, WCF. Или принудительно установите целевую настройку платформы на x86.

Смежные вопросы