Если вы специально выбрали обе сборки как 32-битную и 64-битную, то вы не можете загрузить 32-битную сборку в 64-битный процесс (и наоборот).
Если возможно, вы можете перестроить 32-битную сборку как «Любой процессор»? Это позволит вам загрузить Simple32bitAssembly в 64-битное консольное приложение.
Что касается вашего комментария:
«Существуют бизнес-ограничения, из-за которых я не могу скомпилировать 32-битную DLL как« Любой ЦП ».»
Единственный способ обойти это - развернуть 32-битную сборку в отдельный 32-битный суррогатный процесс. Этот процесс может предоставлять функциональность с помощью технологий .NET, таких как:
WCF
Remoting
ASP.NET Web Service
Недостатки в том, что межпроцессные вызовы могут быть дорогими (хотя вы можете использовать именованные каналы в WCF или Remoting) и увеличивать сложность вашего приложения.
У вас также больше не будет возможности использовать отражение непосредственно на этом компоненте из приложения-потребителя 64 (но вы можете использовать отражение в суррогате).
Таковы испытания приложений со смешанной архитектурой.