Активная платформа решений VS Project Platform VS Платформа

Я хочу, чтобы мое приложение было создано для x64 (потому что я использую dll x64). В диспетчере конфигурации я установил "Active solution platform" на "x64", Однако в списке проектов Платформа установлена ​​на "x86". "Цель платформы" в свойствах проекта также установлена ​​на "x86"

Я полностью смущен, есть три места для установки целевой платформы:

  • Менеджер конфигурации: платформа активных решений
  • Менеджер конфигурации: платформа проекта
  • Свойства проекта: Цель платформы

Например, я могу установить платформу Active solution на x64, платформу Project на x86 и целевую страницу Project на x64. Что это значит?

Кто-нибудь может описать, что именно означает каждый из этих вариантов и как они должны использоваться вместе? Как скомпилировать x64?

Ответы

Ответ 1

Платформа Active Solution позволяет настраивать определенную комбинацию конфигураций для каждого проекта. Платформа проекта позволяет вам создавать определенные параметры конфигурации для проекта. Эти две настройки фактически не говорят о том, на какой платформе будут строиться решения и проекты, это просто набор конфигурации, в котором вы можете изменить фактические настройки.

По умолчанию параметр x64 устанавливает, что проект должен быть скомпилирован специально для x64, но может быть изменен в свойствах проекта через свойство Project Target Target (хотя было бы очень сложно изменить цель для существующего набора конфигурации ничего, кроме его имени).

Каждое свойство Платформа Target - это параметр, который используется для определения того, на какой платформе собрана сборка проекта. Настройка AnyCPU является рекомендуемым параметром, если этот проект не имеет каких-либо зависимостей от компонентов, для работы которых требуется конкретная платформа.

Значение AnyCPU приведет к тому, что сборка будет JIT: ed до

  • x86 на 32-разрядных платформах
  • x64 на 64-разрядных платформах

Подробнее см. этот вопрос.

Что касается вашего примера: установка активной платформы решений на x64, платформа Project на x86 и целевая страница Project на x64 означает, что при выборе конфигурации решения сборка проекта будет построена на JIT только до 64 бит, что приведет к ошибке, если вы попытался запустить его на 32-битной платформе.

Значение x64 должно использоваться, если у вас есть зависимость от только 64-разрядного ресурса, такого как 64-разрядная dll. Соответственно, параметр x86 следует использовать, если у вас есть зависимость от 32-разрядного ресурса.

Настройки менеджера конфигурации можно использовать для изменения способа создания ваших проектов, например, использовать разные ссылочные сборки для x86/x64 или даже для отладки/выпуска, например в этом вопросе. Набор конфигурации представлен как переменные, которые можно использовать внутри конфигурации сборки, чтобы контролировать, что включать и какие задачи сборки выполнять для конкретной конфигурации. Просмотрите файл проекта с помощью блокнота, и вы увидите, как он используется.