Ответ 1
предыдущая версия Visual Studio использовала для этого значение "Любой процессор", а это означает, что на машине x86 вы всегда будете использовать x86, а на машине x64 вы должны либо запустить x64, либо x86 в зависимости от независимо от того, загружен ли процесс, в который загружается сборка, 32-битный или 64-разрядный.
Проблема заключается в том, что при запуске нового процесса .Net exe, построенный с опцией "Любой процессор", закончится как 64-битный процесс, а не как 32-битный процесс, который может вызвать проблемы по двум причинам:
- Любые собственные модули, скомпилированные для x86 (т.е. большинство из них) больше не будут загружаться в ваш процесс (также ошибки, которые вы получили в результате этого, иногда были загадочными, если вы не знали, чтобы посмотреть на эту проблему).
- Кроме того, если ваше приложение фактически использует более 4 ГБ адресного пространства (т.е. память), обратите внимание, что операционная система больше не резервирует верхние 1-2 ГБ адресного пространства для 32-битных процессов в 64-разрядной ОС), 64-разрядный код часто выполняет хуже, чем 32-битный код из-за увеличенного размера указателя.
Поскольку так мало приложений на самом деле используют достаточно адресного пространства (т.е. памяти), чтобы сделать проблему трудной, по умолчанию было изменено на x86, чтобы избежать этих проблем.