Могу ли я использовать событие AppDomain.AssemblyResolve для перенаправления неудачной загрузки сборки? - PullRequest
0 голосов
/ 03 апреля 2010

По умолчанию мое приложение ссылается на DLL в смешанном режиме, поэтому эта библиотека является 32- и 64-битной. В 32-битной системе мое приложение MSIL и загружает 32-битную DLL. В 64-битной системе мое приложение загружает 64-битную версию.

Однако в 64-битной системе в более старой версии сборки, на которую я ссылаюсь, они создали только 32-битную версию. Так что я не могу загрузить это. Я хотел сделать это динамически, и в идеале я хотел бы, чтобы мое приложение MSIL в 64-битном режиме загружало 32-битную DLL. Это возможно?

Также было бы неплохо разрешить его в версии, отличной от той, на которую я ссылался.

Любая помощь приветствуется.

1 Ответ

1 голос
/ 03 апреля 2010

Нельзя загружать 32-битные библиотеки DLL в 64-битные процессы. Сборки «Любой ЦП» работают, потому что JIT обрабатывает компиляцию IL перед выполнением, создавая собственный образ соответствующего типа; Специфичные для процессора сборки не поддерживают JIT для разных типов.

Это ограничение Windows , а не ограничение CLR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...