MSBuild 目标框架和目标平台

可以生成要在目标框架(.NET Framework 的一个特定版本)和目标平台(一种特定的软件体系结构)上运行的项目。 例如,可将一个应用程序设定为在与 80x86 处理器系列 (“x86”) 兼容的 32 位平台上的 .NET Framework 2.0 上运行。 目标框架与目标平台的组合称为“目标上下文”。

重要

本文介绍了指定目标框架的旧方法。 SDK 风格的项目支持不同的目标框架,例如 netstandard。 有关详细信息,请参阅目标框架

目标框架和配置文件

目标框架是将在其上运行项目的特定 .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 的版本各不相同。 例如,不能生成 Windows Presentation Foundation (WPF) 应用程序,除非项目面向 .NET Framework 3.0 或更高版本。

目标框架是在项目文件中的 TargetFrameworkVersion 属性中指定的。 可通过在 Visual Studio 集成开发环境 (IDE) 中使用项目属性页来更改项目的目标框架。 有关详细信息,请参阅如何:面向 .NET Framework 的某个版本TargetFrameworkVersion 的可用值包括 v2.0v3.0v4.0v3.5v4.5.2v4.6v4.6.1v4.6.2v4.7v4.7.1v4.7.2v4.8

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

目标概况是目标框架的一个子集。 例如,.NET Framework 4 客户端配置文件不包括对 MSBuild 程序集的引用。

注意

目标配置文件仅适用于可移植类库

目标配置文件是在项目文件中的 TargetFrameworkProfile 属性中指定的。 可通过在 IDE 中使用项目属性页中的目标框架控件来更改目标概况。

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

目标平台

平台是定义特定运行时环境的硬件和软件的组合。 例如,应用于对象的

  • x86 指定在 Intel 80x86 处理器或等效处理器上运行的 32 位 Windows 操作系统。
  • x64 指定在 Intel x64 处理器或等效处理器上运行的 64 位 Windows 操作系统。
  • anycpu 指定配置为可在任何平台上运行的输出。 您的应用程序将尽可能作为 64 位进程运行;当只有 32 位模式可用时,才会回退到 32 位。
  • anycpu32bitpreferred 指定在任何平台上运行的输出。 在同时支持 64 位和 32 位应用程序的系统上,您的应用程序将以32 位模式运行。
  • Xbox 指定 Microsoft Xbox 360 平台。
  • ARM 将程序集编译成可以在具有高级 RISC 计算机 (ARM) 处理器的计算机运行。
  • ARM64 编译程序集,以在具有支持 A64 指令集的高级 RISC 计算机 (ARM) 处理器的计算机中的 64 位 CLR 上运行。

目标平台是指将在其上运行生成项目的特定平台。 目标平台是在项目文件中的 PlatformTarget 生成属性中指定的。 可通过在 IDE 中使用项目属性页或配置管理器来更改目标平台。

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

PlatformTarget 值传递给编译器以确定要生成的输出。 对于 C# 项目,它映射到 C# 编译器选项 -platform。 有关平台选项的详细信息,请参阅编译器选项:PlatformTarget

目标配置是目标平台的一个子集。 例如,x86 Debug 配置不包括大多数代码优化项。 目标配置是在项目文件中的 Configuration 生成属性中指定的。 可通过使用项目属性页或配置管理器来更改目标配置。

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