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.6
v4.6.1
v4.5.2
v4.6.2
v4.0
v4.7
v3.5
, v4.7.1
v4.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.
Целевая конфигурация — это подмножество целевой платформы. Например, конфигурация x86
Debug
не поддерживает большинство видов оптимизации кода. Целевая конфигурация указывается в свойстве сборки Configuration
в файле проекта. Целевую конфигурацию можно изменить с помощью страниц свойств проекта или диспетчера конфигураций.
<PropertyGroup>
<PlatformTarget>x86</PlatformTarget>
<Configuration>Debug</Configuration>
</PropertyGroup>