Подтвердить что ты не робот

Какова цель установки целевой платформы для приложения Visual Studio?

Для любого проекта VS можно установить целевую платформу в свойствах сборки этого проекта. Вы можете установить это в любой процессор, x86, x64 или Itanium. Мой вопрос: если я установил это значение в x86, значит ли это, что я не могу запустить этот проект на машине x64? Если да, то почему это даже используется? Не лучше ли всегда использовать любой процессор?

4b9b3361

Ответ 1

если я устанавливаю это значение на x86, значит ли это, что я не могу запустить этот проект на машине x64?

Нет, 32-разрядные приложения (x86) отлично работают на 64-разрядной Windows (x64). Все 64-разрядные версии Windows включают 32-разрядный уровень совместимости под Windows под Windows 64 (WOW64). Это, как правило, то, что вы хотите, по сути, поскольку большинство приложений не могут быть выполнены для 64-разрядных.

Однако компиляция для 64-битного (x64) означает, что ваше приложение не будет запускаться на 32-разрядной (x86) машине. Вы можете вернуться назад (64-разрядный может работать 32-разрядный), но вы не можете идти вперед (32-разрядный не может работать 64-разрядный).

Компиляция для Any CPU всегда является опцией, как вы указываете. Это позволит приложению работать как 32-разрядное приложение (x86) на 32-битной машине и как 64-разрядное приложение (x64) на 64-разрядной машине. Это звучит как панацея, но есть затраты. Прежде всего, вам нужно будет тщательно протестировать ваше приложение в 32-разрядной и 64-разрядной средах, тогда как если вы ориентируетесь только на 32-разрядные среды (включая 32-разрядные среды на 64-разрядном хосте), вам нужно будет только протестировать одну сборку. И дополнительная рабочая нагрузка редко стоит того, что большинство бизнес-приложений не извлекают выгоду из дополнительного пространства памяти в 64-битной среде и, вероятно, в конечном итоге победят любые потенциальные выгоды за счет увеличения накладных расходов 64-разрядных указателей.

Visual Studio сама по себе является хорошим примером приложения, которое полностью 32-битное. 64-битной версии нет, но она отлично работает на 64-битном хосте. Этот пост в блоге помогает пролить свет на то, почему было принято решение сохранить VS 32-бит. Вы можете найти обоснование, полезное для принятия решения самостоятельно.

Аналогично, хотя Microsoft Office теперь доступен в 64-разрядном пакете, Microsoft по-прежнему рекомендует большинству клиентов придерживаться 32-разрядной версии. Есть проблемы совместимости с 64-битной версией, и там не так много пользы.

Ответ 2

Если вы не укажете 32-битную платформу, инструментарий совместимости приложений Microsoft не сможет определить, что приложение 32 бит и не позволит вам создать 32-битный файл решения, позволяющий запускать приложение, не требуя учетных данных администратора, когда управление учетной записью пользователя включен