Versión de .NET Framework de destino y plataforma de destino de MSBuild

Un proyecto se puede compilar para su ejecución en una plataforma de destino, que es una versión determinada de .NET Framework, y en una plataforma de destino, que es una arquitectura de software determinada. Por ejemplo, puede diseñar una aplicación para que se ejecute en .NET Framework 2.0 en una plataforma de 32 bits compatible con la familia de procesadores 80x86 ("x86"). La combinación de la plataforma de destino y la plataforma de destino se denomina contexto de destino.

Importante

En este artículo se muestra la forma antigua de especificar una plataforma de destino. Los proyectos de estilo SDK permiten diferentes plataformas de destino, como netstandard. Para más información, consulte Plataformas de destino.

Marco y perfil de destino

Un marco de destino es la versión concreta de .NET Framework para la que se ha compilado el proyecto. Es necesario especificar una versión del marco de trabajo de destino, ya que esto permite habilitar las características del compilador y las referencias de ensamblado exclusivas de esa versión del marco.

Actualmente, se pueden usar las versiones siguientes de .NET Framework:

  • .NET Framework 2.0 (incluido en Visual Studio 2005)

  • .NET Framework 3.0 (incluido en Windows Vista)

  • .NET Framework 3.5 (incluido en Visual Studio 2008)

  • .NET Framework 4.0

  • .NET Framework 4.5.2

  • .NET Framework 4.6 (incluido en 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

Las versiones de .NET Framework difieren entre sí en la lista de ensamblados a los que se puede hacer referencia en cada una de ellas. Por ejemplo, solo puede compilar aplicaciones de Windows Presentation Foundation (WPF) si el proyecto tiene como destino.NET Framework 3.0 o versiones posteriores.

El marco de trabajo de destino se especifica en la propiedad TargetFrameworkVersion del archivo de proyecto. Puede cambiar la plataforma de destino de un proyecto mediante las páginas de propiedades del proyecto en el entorno de desarrollo integrado (IDE) de Visual Studio. Para obtener más información, vea Cómo: Usar una versión de .NET Framework como destino. Los valores disponibles para TargetFrameworkVersion son v2.0, v3.0, v4.0, v3.5, v4.5.2, v4.6, v4.6.1, v4.6.2, v4.7, v4.7.1, v4.7.2 y v4.8.

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Un perfil objetivo es un subconjunto de una plataforma de destino. Por ejemplo, .NET Framework 4 Client Profile no incluye referencias a los ensamblados de MSBuild.

Nota

Los perfiles objetivo solo se aplican a las bibliotecas de clases portables.

El perfil de destino se especifica en la propiedad TargetFrameworkProfile de un archivo de proyecto. Puede cambiar el perfil objetivo mediante el control de plataforma de destino en las páginas de propiedades del proyecto del IDE.

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

Plataforma de destino

Una plataforma es una combinación de hardware y de software que define un entorno en tiempo de ejecución determinado. Por ejemplo,

  • x86 designa un sistema operativo Windows de 32 bits que se ejecuta en un procesador Intel 80x86 o su equivalente.
  • x64 designa un sistema operativo Windows de 64 bits que se ejecuta en un procesador Intel x64 o su equivalente.
  • anycpu designa la salida configurada para poder ejecutarse en cualquier plataforma. La aplicación se ejecuta como un proceso de 64 bits siempre que sea posible y recurre a 32 bits solo cuando el modo está disponible.
  • anycpu32bitpreferred designa la salida que se ejecuta en cualquier plataforma. La aplicación se ejecuta en modo de 32 bits en sistemas que admiten aplicaciones de 64 y 32 bits.
  • Xbox designa la plataforma Microsoft Xbox 360.
  • ARM compila el ensamblado de forma que pueda ejecutarse en un equipo que tenga un procesador Advanced RISC Machine (ARM).
  • ARM64 compila el ensamblado que se va a ejecutar mediante el CLR de 64 bits en un equipo que tiene un procesador Advanced RISC Machine (ARM) que admite el conjunto de instrucciones A64.

Una plataforma de destino es la plataforma específica para la que se ha compilado el proyecto. La plataforma de destino se especifica en la propiedad de compilación PlatformTarget de un archivo de proyecto. Puede cambiar la plataforma de destino mediante las páginas de propiedades del proyecto o el Administrador de configuración del IDE.

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

El valor PlatformTarget se pasa al compilador para determinar qué salida se va a generar. Para los proyectos de C#, se asigna a la opción del compilador de C# -platform. Las opciones de la plataforma se explican con más detalle en Opciones del compilador: PlatformTarget.

Una configuración de destino es un subconjunto de una plataforma de destino. Por ejemplo, la configuración Debug de x86 no incluye la mayoría de las optimizaciones de código. La configuración de destino se especifica en la propiedad de compilación Configuration de un archivo de proyecto. Puede cambiar la configuración de destino mediante las páginas de propiedades del proyecto o el Administrador de configuración.

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