Версия .NET с 64-битными и 32-битными сборками - PullRequest
4 голосов
/ 01 мая 2010

Какая версия .NET (64-разрядная или 32-разрядная) будет загружена, если некоторые сборки, на которые есть ссылки в приложении, скомпилированы только с 32-разрядной настройкой (вместо AnyMachine)? Будет ли приложение по-прежнему работать как 64-разрядное или оно будет принудительно работать как 32-разрядное, если хотя бы одна из упомянутых сборок скомпилирована как только 32-разрядная? Приложение работает под управлением .NET 3.5.

Ответы [ 2 ]

5 голосов
/ 01 мая 2010

Приложение будет работать как 32-битное

4 голосов
/ 01 мая 2010

Битность определяется настройкой Platform Target в EXE-файле. Не существует механизма, гарантирующего, что EXE, который ссылается только на 32-разрядную сборку, будет принудительно работать в 32-разрядном режиме. Сборка просто не удастся загрузить с BadImageFormatException.

Если ваша программа зависит от такой библиотеки DLL, то вы должны принудительно установить целевой объект платформы для вашего проекта EXE с AnyCPU на x86.

...