MSBuild: целевая рабочая среда и целевая платформа

Проект может быть создан для выполнения в требуемой версии .NET Framework, которая является конкретной версией платформы .NET Framework, и на целевой платформе, которая является конкретной программной архитектурой. Например, приложение .NET Framework 2.0 можно настроить для выполнения на 32-разрядной платформе, которая совместима с семейством процессоров 80x86 (x86). Сочетание требуемой версии .NET Framework и целевой платформы называется целевым контекстом.

Важно!

В этой статье показан старый способ указания целевой платформы. Проекты в стиле пакетов SDK позволяют использовать разные TargetFrameworks, такие как netstandard. Дополнительные сведения см. в разделе Требуемые версии .NET Framework.

Целевая платформа и профиль

Целевая платформа — это конкретная версия .NET Framework, для выполнения на которой создан проект. Спецификация целевой платформы является необходимым условием, поскольку она позволяет использовать возможности компилятора и ссылки на сборки, предназначенные исключительно для этой версии платформы.

В настоящее время доступны следующие версии платформы .NET Framework.

  • .NET Framework 2.0 (входит в состав Visual Studio 2005)

  • .NET Framework 3.0 (входит в состав Windows Vista)

  • .NET Framework 3.5 (входит в состав Visual Studio 2008)

  • Платформа .NET Framework 4.0

  • .NET Framework 4.5.2

  • .NET Framework 4.6 (входит в состав Visual Studio 2015)

  • .NET Framework 4.6.1

  • .NET Framework 4.6.2

  • .NET Framework 4.7

  • .NET Framework 4.7.1

  • .NET Framework 4.7.2

  • .NET Framework 4.8

Версии платформы .NET Framework отличаются друг от друга в списке сборок, доступном для использования в справочных целях. Например, приложения WPF можно создавать, только если проект предназначен для платформы .NET Framework версии 3.0 или выше.

Целевая версия .NET Framework указывается в свойстве TargetFrameworkVersion в файле проекта. Целевую версию .NET Framework для проекта можно изменить с помощью страниц свойств проекта в интегрированной среде разработки Visual Studio. Дополнительные сведения см. в практическом руководстве по настройке конкретной версии .NET Framework. Доступные значенияTargetFrameworkVersion: v2.0, v3.0, v4.6v4.6.1v4.5.2v4.6.2v4.0v4.7v3.5, v4.7.1v4.7.2и .v4.8

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Целевой профиль — это подмножество целевой платформы. Например, профиль клиента .NET Framework 4 не содержит ссылок на сборки MSBuild.

Примечание.

Целевые профили применяются только к переносимым библиотекам классов.

Целевой профиль указывается в свойстве TargetFrameworkProfile в файле проекта. Целевой профиль можно изменить с помощью элемента управления целевой платформы на страницах свойств проекта в интегрированной среде разработки.

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>

Целевая платформа

Платформа — это сочетание оборудования и программного обеспечения, которое определяет конкретную среду выполнения. Например:

  • x86 обозначает 32-разрядную операционную систему Windows, работающую с процессором Intel 80x86 или эквивалентным.
  • x64 обозначает 64-разрядную операционную систему Windows, работающую с процессором Intel x64 или эквивалентным.
  • anycpu указывает выходные данные, настроенные для работы на любой платформе. Если возможно, приложение выполняется как 64-разрядный процесс, а если доступен только 32-разрядный режим, переключается на него.
  • anycpu32bitpreferred обозначает выходные данные, которые выполняются на любой платформе. Приложение выполняется в 32-разрядном режиме в системах, поддерживающих и 64-разрядные, и 32-разрядные приложения.
  • Xbox обозначает платформу Microsoft Xbox 360.
  • ARM компилирует сборку для запуска на компьютере с процессором advanced RISC Machine (ARM).
  • ARM64 Компилирует сборку для запуска на 64-разрядном clR на компьютере с процессором Advanced RISC Machine (ARM), поддерживающим набор инструкций A64.

Целевая платформа — это конкретная платформа, для выполнения на которой создан проект. Целевая платформа указывается в свойстве сборки PlatformTarget в файле проекта. Целевую платформу можно изменить с помощью страниц свойств проекта или диспетчера конфигураций в интегрированной среде разработки.

<PropertyGroup>
   <PlatformTarget>x86</PlatformTarget>
</PropertyGroup>

Значение PlatformTarget передается компилятору, чтобы определить, какие выходные данные необходимо создать. Для проектов C# он сопоставляется с параметром -platformкомпилятора C#. Параметры платформы подробно описаны в параметрах компилятора: PlatformTarget.

Целевая конфигурация — это подмножество целевой платформы. Например, конфигурация x86Debug не поддерживает большинство видов оптимизации кода. Целевая конфигурация указывается в свойстве сборки Configuration в файле проекта. Целевую конфигурацию можно изменить с помощью страниц свойств проекта или диспетчера конфигураций.

<PropertyGroup>
   <PlatformTarget>x86</PlatformTarget>
   <Configuration>Debug</Configuration>
</PropertyGroup>

См. также