Specificare come destinazione più versioni e piattaforme del framework
Usando MSBuild, è possibile compilare un'applicazione da eseguire in una delle diverse versioni di .NET Framework e in una delle diverse piattaforme di sistema. Ad esempio, è possibile compilare un'applicazione da eseguire in .NET Framework 2.0 in una piattaforma a 32 bit e compilare la stessa applicazione da eseguire in .NET Framework 4.5 in una piattaforma a 64 bit.
Nota
Questo articolo descrive un tipo meno recente di multitargeting applicabile alle compilazioni di .NET Framework in cui un progetto può avere come destinazione un solo framework e una sola piattaforma alla volta. In .NET Core e .NET 5 e versioni successive è possibile usare un tipo più recente di multitargeting usando la proprietà TargetFrameworks
(plurale) in un file di progetto. Quando si esegue la compilazione con dotnet build
o comandi simili dell'interfaccia della riga di comando di .NET o con Visual Studio dopo il ricaricamento del progetto, la compilazione usa il tipo più recente di multitargeting, in cui si verificano più compilazioni, una volta per ogni framework di destinazione elencato. Vedere Framework di destinazione.
Ecco alcune delle funzionalità di targeting di MSBuild:
È possibile sviluppare un'applicazione destinata a una versione precedente di .NET Framework, ad esempio versioni 2.0, 3.5 o 4.
È possibile specificare come destinazione un framework diverso da .NET Framework, ad esempio Silverlight Framework.
È possibile specificare come destinazione un profilo framework , che è un subset predefinito di un framework di destinazione.
Se viene rilasciato un Service Pack per la versione corrente di .NET Framework, è possibile specificarlo come destinazione.
La destinazione MSBuild garantisce che un'applicazione usi solo le funzionalità disponibili nel framework e nella piattaforma di destinazione.
Framework e piattaforma di destinazione
Un framework di destinazione è la versione di .NET Framework su cui viene eseguito un progetto, e una piattaforma di destinazione è la piattaforma di sistema su cui viene eseguito il progetto. Ad esempio, è possibile impostare come destinazione un'applicazione .NET Framework 2.0 per l'esecuzione in una piattaforma a 32 bit compatibile con la famiglia di processori 80x86 (x86). La combinazione di framework di destinazione e piattaforma di destinazione è nota come contesto di destinazione . Per altre informazioni, vedere Ambiente di destinazione e piattaforma di destinazione.
Set di strumenti (ToolsVersion)
Un set di strumenti raccoglie insieme gli strumenti, le attività e le destinazioni usati per creare l'applicazione. Un set di strumenti include compilatori come csc.exe e vbc.exe, il file di destinazioni comuni (microsoft.common.targets) e il file delle attività comuni (microsoft.common.tasks). Il set di strumenti 4.5 può essere usato per usare .NET Framework versioni 2.0, 3.0, 3.5, 4 e 4.5. Tuttavia, il set di strumenti 2.0 può essere usato solo per indirizzare il .NET Framework versione 2.0. Per altre informazioni, vedere Set di strumenti (ToolsVersion).
Assembly di riferimento
Gli assembly di riferimento specificati nel set di strumenti consentono di progettare e compilare un'applicazione. Questi assembly di riferimento non solo abilitano una compilazione di destinazione specifica, ma limitano anche componenti e funzionalità nell'IDE di Visual Studio a quelli compatibili con la destinazione. Per altre informazioni, vedere Risolvere gli assembly in fase di progettazione.
Configurare destinazioni e attività
È possibile configurare le destinazioni e le attività di MSBuild per l'esecuzione out-of-process con MSBuild in modo che sia possibile specificare contesti notevolmente diversi da quelli in esecuzione. Ad esempio, è possibile specificare come destinazione un'applicazione .NET Framework 2.0 a 32 bit mentre il computer di sviluppo è in esecuzione in una piattaforma a 64 bit con .NET Framework 4.5. Per altre informazioni, vedere Configurare destinazioni e attività.
Risoluzione dei problemi
Se si tenta di fare riferimento a un assembly che non fa parte del contesto di destinazione, potrebbero verificarsi errori. Per ulteriori informazioni su questi errori e sulle azioni da intraprendere, vedere Risolvere gli errori di targeting del .NET Framework.