Framework e piattaforma di destinazione di MSBuild

È possibile compilare un progetto per eseguirlo in un framework di destinazione, che è una versione particolare di .NET Framework e una piattaforma di destinazione, che è un'architettura software particolare. Ad esempio, è possibile impostare come destinazione un'applicazione per l'esecuzione in .NET Framework 2.0 in una piattaforma a 32 bit compatibile con la famiglia di processori 80x86 ("x86"). La combinazione del framework e della piattaforma di destinazione è nota come contesto di destinazione.

Importante

Questo articolo descrive il metodo precedente per specificare un framework di destinazione. I progetti in stile SDK abilitano framework di destinazione diversi, ad esempio netstandard. Per altre informazioni, vedere Framework di destinazione.

Profilo e framework di destinazione

Un framework di destinazione è una versione particolare di .NET Framework in cui il proprio progetto è compilato per essere eseguito. La specifica di un framework di destinazione è necessaria perché abilita le funzionalità del compilatore e i riferimenti dell'assembly che sono esclusivi di quella versione di framework.

Le versioni seguenti di .NET Framework sono attualmente disponibili per l'uso:

  • .NET Framework 2.0 (incluso in Visual Studio 2005)

  • .NET Framework 3.0 (incluso in Windows Vista)

  • .NET Framework 3.5 (incluso in Visual Studio 2008)

  • .NET Framework 4.0

  • .NET Framework 4.5.2

  • .NET Framework 4.6 (incluso in 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

Le versioni di .NET Framework sono diverse l'una dall'altra nell'elenco di assembly che ognuna rende disponibile come riferimento. Ad esempio, non è possibile compilare applicazioni WPF (Windows Presentation Foundation) a meno che il progetto non imposti .NET Framework versione 3.0 o versioni superiori come destinazione.

Il framework di destinazione viene specificato nella proprietà TargetFrameworkVersion nel file di progetto. È possibile modificare il framework di destinazione per un progetto usando le pagine di proprietà del progetto nell'ambiente di sviluppo integrato (IDE) di Visual Studio. Per altre informazioni, vedere Procedura: Scegliere una versione di .NET Framework. I valori disponibili per TargetFrameworkVersion sono v2.0, v3.0, v4.0, v3.5, v4.5.2, v4.6v4.7v4.6.2v4.7.1v4.6.1v4.7.2e .v4.8

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Un profilo target è un subset di un framework di destinazione. Ad esempio, Framework 4 Client Profile non include riferimenti agli assembly di MSBuild.

Nota

I profili di destinazione si applicano solo alle librerie di classi portabili.

Il framework di destinazione viene specificato nella proprietà TargetFrameworkProfile in un file di progetto. È possibile modificare il profilo target usando il controllo del framework di destinazione nelle pagine delle proprietà del progetto nell'IDE.

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

Piattaforma di destinazione

Una piattaforma è una combinazione di hardware e software che definisce un particolare ambiente di runtime. ad esempio:

  • x86 definisce un sistema operativo Windows a 32 bit che è in esecuzione su un processore 80x86 Intel o un suo equivalente.
  • x64 designa un sistema operativo Windows a 64 bit in esecuzione su un processore Intel x64 o il relativo equivalente.
  • anycpu designa l'output configurato per l'esecuzione in qualsiasi piattaforma. L'applicazione viene eseguita come processo a 64 bit, quando possibile, e tramite essa viene eseguito il fallback a 32 bit solo quando questa modalità è disponibile.
  • anycpu32bitpreferred designa l'output eseguito in qualsiasi piattaforma. L'applicazione viene eseguita in modalità a 32 bit nei sistemi che supportano sia le applicazioni a 64 bit sia quelle a 32 bit.
  • Xbox definisce la piattaforma Microsoft Xbox 360.
  • ARM compila l'assembly per l'esecuzione in un computer con un processore ARM (Advanced RISC Machine).
  • ARM64 compila l'assembly per l'esecuzione nel CLR a 64 bit in un computer con un processore ARM (Advanced RISC Machine) che supporta il set di istruzioni A64.

Una piattaforma di destinazione è una particolare piattaforma in cui il proprio progetto è compilato per l'esecuzione. Il framework di destinazione viene specificato nella proprietà di compilazione PlatformTarget in un file di progetto. È possibile modificare la piattaforma di destinazione usando le pagine della proprietà del progetto o la Gestione configurazione nell'IDE.

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

Il PlatformTarget valore viene passato al compilatore per determinare l'output da generare. Per i progetti C#, viene eseguito il mapping all'opzione -platformdel compilatore C#. Le opzioni della piattaforma sono illustrate in modo più dettagliato in Opzioni del compilatore: PlatformTarget.

Una configurazione di destinazione è un subset di una piattaforma di destinazione. Ad esempio, la configurazione x86Debug non include la maggior parte delle ottimizzazioni di codice. La configurazione di destinazione viene specificata nella proprietà di compilazione Configuration in un file di progetto. È possibile modificare la configurazione di destinazione usando le pagine della proprietà del progetto o la Gestione configurazione.

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