Платформа активных решений VS Project Platform VS Цель платформы - PullRequest
19 голосов
/ 10 февраля 2012

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

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

  • Диспетчер конфигурации: платформа активного решения
  • Диспетчер конфигурации: платформа проекта
  • Свойства проекта: цель платформы

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

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

1 Ответ

27 голосов
/ 11 февраля 2012

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

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

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

Настройка AnyCPU приведет к тому, что сборка будет JIT: от

  • x86 на 32-битных платформах
  • x64 на 64-битных платформах

См. этот вопрос для получения дополнительной информации.

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

Параметр x64 следует использовать, если у вас есть зависимость от 64-битного ресурса, такого как 64-битная DLL. Соответственно, следует использовать параметр x86, если у вас есть зависимость от 32-разрядного ресурса.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...