Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Tramite Visual Studio è possibile compilare un'applicazione da eseguire in una qualunque delle tante versioni di .NET Framework. Ad esempio, è possibile compilare un'applicazione da eseguire in .NET Framework versione 2.0 e compilare la stessa applicazione da eseguire in .NET Framework versione 4. La possibilità di compilare in più framework è denominata multitargeting.
Nota
Visual Studio viene eseguito nella versione di .NET Framework più recente installata nel computer di sviluppo.
Di seguito sono riportati alcuni dei vantaggi del multitargeting:
È possibile sviluppare applicazioni destinate a versioni di .NET Framework precedenti, ad esempio le versioni 2.0, 3.0 e 3.5.
È possibile avere framework di destinazione diversi da .NET Framework, ad esempio Silverlight.
L'applicazione può essere destinata a un profilo del framework, vale a dire un sottoinsieme predefinito di un framework di destinazione.
In caso di rilascio di Service Pack per .NET Framework versione 4, è possibile destinare l'applicazione a tali Service Pack.
Il multitargeting garantisce che un'applicazione utilizzi solo le funzionalità disponibili nel framework di destinazione.
Un framework di destinazione è una versione particolare di .NET Framework per la quale il progetto è stato compilato appositamente. È necessario in quanto abilita le funzionalità del compilatore specifiche per la versione di .NET Framework 2.0 o fa riferimento ad assembly inclusi solo in tale versione del framework.
Quando si compila un'applicazione destinata a un framework specifico, è necessario coordinare i seguenti tre set di componenti software:
Set di strumenti, contenente i compilatori, le attività e le destinazioni utilizzati per creare l'applicazione.
Assembly di riferimento, utilizzati per progettare e compilare l'applicazione.
Assembly di runtime, utilizzati per eseguire l'applicazione.
Set di strumenti (ToolsVersion)
Un set di strumenti è un set di attività di MSBuild, destinazioni di MSBuild e strumenti corrispondenti installati con MSBuild e .NET Framework. Un set di strumenti include compilatori come csc.exe e vbc.exe, il file delle destinazioni comuni (microsoft.common.targets) e il file delle attività comuni (microsoft.common.tasks). Il set di strumenti 4.0 può essere utilizzato con le versioni di destinazione di .NET Framework 2.0, 3.0, 3.5 e 4. Il set di strumenti 2.0 può tuttavia essere utilizzato solo con la versione di destinazione di .NET Framework 2.0.
È possibile specificare il set di strumenti impostando l'attributo ToolsVersion dell'elemento Project di un file di progetto, ad esempio:
<Project ToolsVersion="4.0" ...
È possibile utilizzare il set di strumenti versione 4.0 per compilare applicazioni da eseguire in diversi framework di destinazione, a condizione che per ogni framework sia installato un pacchetto di destinazione. Per ulteriori informazioni, vedere "Pacchetti di destinazione" più avanti in questo argomento.
È inoltre possibile creare set di strumenti personalizzati. Per ulteriori informazioni, vedere Configurazioni standard e personalizzate del set di strumenti.
Nota
Visual Studio non include alcuna interfaccia utente per la modifica del set di strumenti.
Assembly di riferimento
In genere, i framework dispongono di assembly di riferimento associati. Un assembly di riferimento è un assembly semplificato che non dispone di codice ed espone unicamente tipi e membri pubblici.
In fase di progettazione e compilazione, gli assembly di riferimento per il framework di destinazione vengono utilizzati in Visual Studio come filtri, per far sì che solo i tipi e i membri compatibili con tale framework siano disponibili. Ad esempio, quando si ha come destinazione .NET Framework versione 3.5, i tipi e i membri forniti solo da .NET Framework versione 4 non vengono visualizzati nelle finestre di progettazione di Visual Studio, ad esempio la scheda .NET della finestra di dialogo Aggiungi riferimento, e non sono disponibili per il processo di compilazione.
LINQ è ad esempio una nuova tecnologia inclusa in Visual Studio 2008. .NET Framework 3.5 è l'unica versione di .NET Framework che include assembly correlati a LINQ. Non è pertanto possibile utilizzare LINQ a meno che il progetto sia destinato in modo specifico a .NET Framework 3.5 o versione successiva. Analogamente, Windows Presentation Foundation (WPF) è incluso in Windows Vista. Non è possibile compilare applicazioni WPF a meno che il progetto non sia destinato a .NET Framework 3.0 o versioni successive di .NET Framework.
Pacchetti di destinazione
Gli assembly di riferimento diventano disponibili nel momento in cui viene installato il corrispondente pacchetto di destinazione. Un pacchetto di destinazione contiene gli assembly di riferimento e un file FrameworkList.xml in cui sono elencati gli assembly. Il file FrameworkList.xml è noto anche come elenco di ridistribuzione (redist).
I pacchetti di destinazione vengono forniti dalle seguenti origini:
I pacchetti di destinazione per .NET Framework versioni 2.0, 3.0 e 3.5 sono inclusi in .NET Framework versione 3.5 SP1.
I pacchetti di destinazione per .NET Framework versione 3.5 Client Profile, .NET Framework versione 4 e versione 4 Client Profile e Silverlight sono inclusi in Visual Studio.
In genere, i pacchetti di destinazione vengono installati nella cartella \Programmi (x86)\Reference Assemblies\Microsoft\Framework\. Il pacchetto di destinazione per .NET Framework versione 2.0 viene in genere installato nella cartella \Windows\Microsoft.NET\Framework\v2.0.50727\.
Quando si compila una soluzione o un progetto dalla riga di comando, la specifica di un attributo ToolsVersion per msbuild.exe comporta che tutti i progetti e le dipendenze tra progetti siano compilati secondo tale versione degli strumenti, anche se ogni progetto nella soluzione indica un attributo ToolsVersion specifico nel proprio Elemento Project (MSBuild).
Assembly di runtime
Per poter impostare un framework di destinazione in Visual Studio è necessario installare il pacchetto di destinazione corrispondente. Ad esempio, per impostare .NET Framework versione 3.0 come destinazione, è necessario installare i relativi assembly di riferimento e assembly compatibili. In fase di esecuzione, il caricatore Fusion di Common Language Runtime (CLR) associa l'applicazione agli assembly di runtime del framework di destinazione.
Selezione di un framework di destinazione
Per selezionare una framework di destinazione per un progetto esistente
In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo del progetto, quindi scegliere Proprietà.
Nella scheda Applicazione selezionare un framework nell'elenco Framework di destinazione. In questo elenco vengono visualizzati unicamente i framework per i quali è stato installato un pacchetto di destinazione.
La selezione viene utilizzata per impostare i valori dei tre elementi seguenti nel file di progetto:
L'elemento TargetFrameworkIdentifier indica il framework di destinazione, ad esempio
<TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier>
Se questo elemento non è presente, verrà impostato il valore predefinito ".NETFramework".
L'elemento TargetFrameworkVersion indica la versione del framework di destinazione, ad esempio
<TargetFrameworkVersion>v3.0</TargetFrameworkVersion>
L'elemento TargetFrameworkProfile indica il profilo del framework di destinazione, ad esempio
<TargetFrameworkProfile>Client</TargetFrameworkVersion>
Se questo elemento non è presente, la destinazione sarà l'intero framework.
Questi tre elementi vengono combinati dalle destinazioni comuni del sistema di compilazione di Visual Studio per formare un identificatore noto come moniker del framework di destinazione (TFM).
Scenario: Visual Studio è destinato a .NET Framework versione 3.5
Si supponga che Visual Studio venga eseguito in .NET Framework versione 4. Per impostare .NET Framework versione 3.5 come destinazione, è necessario che gli assembly di riferimento e di runtime associati siano installati. Questi assembly sono inclusi in .NET Framework versione 3.5 SP1.
In questo scenario, nelle finestre di progettazione di Visual Studio vengono visualizzati solo gli elementi filtrati dagli assembly di riferimento di .NET Framework versione 3.5; quando si compila un progetto, inoltre, la compilazione viene eseguita a fronte di tali assembly. Quando si esegue il progetto, l'esecuzione avviene negli assembly di runtime di .NET Framework versione 3.5, che a loro volta sono eseguiti in CLR versione 2.0.
Quando si distribuisce l'applicazione in un altro computer, è necessario che sia presente .NET Framework versione 3.5. È possibile verificare la presenza della versione 3.5 nel computer di destinazione e, se necessario, installare tale versione tramite un pacchetto di ridistribuzione (redist) adatto.
Scenario due: Visual Studio è eseguito in .NET Framework versione 4.1 ed è destinato a .NET Framework versione 4
Si supponga che .NET Framework versione 4.1 diventi disponibile e che le versioni 4 e 4.1 vengano entrambe eseguite in CLR versione 4. Se .NET Framework versione 4.1 è installato, Visual Studio verrà automaticamente eseguito in tale versione.
Per un progetto destinato a .NET Framework versione 4, gli assembly di riferimento della versione 4 filtrerebbero i tipi e i membri disponibili nelle finestre di progettazione di Visual Studio, il progetto verrebbe compilato a fronte di tali assembly di riferimento e l'applicazione risultante verrebbe eseguita a fronte degli assembly di runtime della versione 4.
Vedere anche
Concetti
Risoluzione di assembly in fase di progettazione
Concetti avanzati relativi a MSBuild
Cronologia delle modifiche
Data |
Cronologia |
Motivo |
|---|---|---|
|
Agosto 2010 |
Unito l'argomento Utilizzo di MSBuild per creare progetti destinati a versioni specifiche di .NET Framework |
Miglioramento delle informazioni. |