2

У меня есть приложение .Net, написанное на C #. Приложение было скомпилировано с флагом "any", что позволяет ему работать как в 64, так и в 32 битах, в зависимости от операционной системы, в которой оно развернуто.

Мне интересно, можно ли заставить приложение работать как 32-разрядное приложение в 64-разрядной версии Windows (любая 64-разрядная версия Windows).

2 ответа2

2

Да, используйте CorFlags, чтобы установить флаг 32BIT на исполняемый файл. Например:

corflags.exe myapp.exe /32BIT+

Это изменит ваш исполняемый файл, так что вы можете сохранить резервную копию на всякий случай. Вы также можете вернуть флаг, используя /32BIT- вместо /32BIT+

0

Более новая информация:

Когда приложение .NET встроено в Visual Studio 2012 и более поздние версии, значением по умолчанию является AnyCPU с дополнительным подтипом AnyCPU, «Любой 32-разрядный процессор предпочтителен». Это подразумевает следующее:

  • Если процесс выполняется в 32-разрядной системе Windows, он выполняется как 32-разрядный процесс. IL скомпилирован в машинный код x86.
  • Если процесс выполняется в 64-разрядной системе Windows, он выполняется как 32-разрядный процесс. IL скомпилирован в машинный код x86.
  • Если процесс выполняется в системе ARM Windows, он выполняется как 32-разрядный процесс. IL скомпилирован в машинный код ARM.

Источник: http://blogs.microsoft.co.il/sasha/2012/04/04/what-anycpu-really-means-as-of-net-45-and-visual-studio-11/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .