Set di strumenti di MSBuild (ToolsVersion)
MSBuild utilizza i set di strumenti di attività di, destinazioni di e strumenti compilare un'applicazione.In genere, i set di strumenti MSBuild includono un file di microsoft.common.tasks, un file microsoft.common.targets e compilatori come csc.exe e vbc.exe.La maggior parte dei set di strumenti possono essere utilizzati per compilare applicazioni a più versioni di .NET Framework e a più piattaforme del sistema.Tuttavia, i set di strumenti MSBuild 2,0 possono essere utilizzati esclusivamente per.NET Framework 2.0.
Attributo ToolsVersion
Specificare i set di strumenti nell'attributo ToolsVersion sull'elemento Project nel file di progetto.Nell'esempio seguente viene specificato che il progetto deve essere compilato utilizzando il set di strumenti di MSBuild 2,0.
<Project ToolsVersion="2.0" ... </Project>
Funzionamento dell'attributo ToolsVersion
Quando si crea un progetto in Visual Studio, oppure si aggiorna un progetto esistente, un attributo denominato ToolsVersion è incluso automaticamente nel file di progetto e il valore corrisponde alla versione di .NET Framework inclusa nell'edizione di Visual Studio.Per ulteriori informazioni, vedere Scelta di una versione o profilo di .NET Framework specifico.
Quando un valore ToolsVersion è definito in un file di progetto, utilizzare MSBuild che valutano determinare i valori delle proprietà del set di strumenti disponibili per il progetto.Una proprietà del set di strumenti è $(MSBuildToolsPath), che specifica il percorso degli strumenti di .NET Framework.Solo la proprietà del set di strumenti (o $(MSBuildBinPath)), è necessaria.
Nell'esempio seguente, MSBuild trova il file Microsoft.CSharp.targets utilizzando la proprietà riservata MSBuildToolsPath.
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
È possibile modificare il valore MSBuildToolsPath definendo i set di strumenti personalizzati.Per ulteriori informazioni, vedere Configurazioni standard e personalizzate del set di strumenti.
Quando si compila una soluzione nella riga di comando e specificare ToolsVersion per msbuild.exe, tutti i progetti e le dipendenze tra progetti siano compilati secondo tale ToolsVersion, anche se ogni progetto nella soluzione specifica il proprio ToolsVersion.Per definire il valore ToolsVersion visualizzato per base di progetto, vedere Override delle impostazioni ToolsVersion.
L'attributo ToolsVersion viene utilizzato per migrazione del progetto.Ad esempio, se si apre un progetto di Visual Studio 2008 in Visual Studio 2010, il file di progetto viene aggiornato per importare ToolsVersion=„ 4,0 ".Se si tenta di aprire il progetto in Visual Studio 2008, non riconosce ToolsVersion aggiornato e pertanto non viene compilato il progetto come se l'attributo sia ancora stato impostato su 3,5.
In Visual Studio 2010 e Visual Studio 2012 utilizzano un valore ToolsVersion pari a 4,0.In molti casi, è possibile aprire il progetto in entrambe le versioni di Visual Studio senza modifiche.
i i set di strumenti, descritti più avanti in questo argomento, consentono MSBuild automaticamente all'opzione che imposta gli strumenti da utilizzare al contesto in cui la compilazione viene eseguito.Ad esempio, MSBuild utilizza un nuovo più set di strumenti quando viene eseguito in Visual Studio 2012 che quando viene eseguito in Visual Studio 2010, senza il essere necessario modificare in modo esplicito il file di progetto.Per ulteriori informazioni, vedere Procedura: Modificare un sistema del progetto in modo che i progetti caricare nelle versioni di Visual Studio.
Implementazione del set di strumenti
Implementare i set di strumenti selezionando i percorsi dei vari strumenti, destinazioni e attività che costituiscono i set di strumenti.Gli strumenti nel set di strumenti che MSBuild definisce provengono dalle seguenti origini:
La cartella di .NET Framework.
Strumenti aggiuntivi gestiti.
Gli strumenti includono ResGen.exe gestiti e TlbImp.exe.
MSBuild sono disponibili due modi per accedere ai set di strumenti:
Tramite le proprietà del set di strumenti
Utilizzando i metodi ToolLocationHelper
Le proprietà del set di strumenti specificano i percorsi degli strumenti.MSBuild utilizza il valore dell'attributo ToolsVersion nel file di progetto per individuare la chiave del Registro di sistema corrispondente e utilizza le informazioni della chiave del Registro di sistema per impostare le proprietà del set di strumenti.Ad esempio, se ToolsVersion ha il valore 4,0, MSBuild imposta le proprietà dei set di strumenti in base alla chiave del Registro di sistema: HKLM \ software \ Microsoft \ MSBuild \ ToolsVersions \ 4,0.
Queste proprietà sono del set di strumenti:
MSBuildToolsPath specifica il percorso degli strumenti di .NET Framework.
SDK40ToolsPath specifica il percorso degli strumenti aggiuntivi gestiti da MSBuild 4,0.
SDK35ToolsPath specifica il percorso degli strumenti aggiuntivi gestiti da MSBuild 3,5.
In alternativa, è possibile determinare il set di strumenti a livello di codice chiamando i metodi della classe ToolLocationHelper.La classe include questi metodi:
IlGetPathToDotNetFramework restituisce il percorso della cartella di .NET Framework.
IlGetPathToDotNetFrameworkFile restituisce il percorso di un file nella cartella di .NET Framework.
IlGetPathToDotNetFrameworkSdk restituisce il percorso della cartella gestita degli strumenti.
IlGetPathToDotNetFrameworkSdkFile restituisce il percorso di un file, che in genere si trova nella cartella gestita degli strumenti.
i set di strumenti
Come descritto precedentemente in questo argomento, MSBuild utilizza una chiave del Registro di sistema per specificare il percorso degli strumenti di base.Se la chiave è una sottochiave, MSBuild viene utilizzato per specificare il percorso dei set di strumenti che contengono strumenti aggiuntivi.In questo caso, i set di strumenti sono definiti combinando le definizioni delle proprietà definite in entrambe le chiavi.
[!NOTA]
Se i nomi delle proprietà del set di strumenti sono in conflitto, il valore definito per il percorso della sottochiave esegue l'override del valore definito per il percorso della chiave radice.
i set di strumenti diventano attivi in presenza di una proprietà di compilazione VisualStudioVersion.Questa proprietà accetta uno dei valori seguenti:
“10,0„ specifica dei set di strumenti di .NET Framework 4
“11,0„ specifica dei set di strumenti di .NET Framework 4,5
Durante la compilazione, MSBuild determina automaticamente e imposta un valore predefinito della proprietà VisualStudioVersion se non è già definita.
MSBuild offre gli overload dei metodi ToolLocationHelper che aggiungono un valore enumerato VisualStudioVersion come parametro.Inoltre, MSBuild fornisce questi nuovi metodi per restituire i percorsi degli strumenti nativi aggiuntivi:
GetPathToWindowsSdk
GetPathToWindowsSdkFile
Questi nuovi metodi e accettano un valore enumerato VisualStudioVersion come parametro per determinare quali i set di strumenti da utilizzare.L'enumerazione VisualStudioVersion può assumere uno dei seguenti valori:
VisualStudio10
VisualStudio11
VisualStudioLatest
i i set di strumenti sono state introdotte in .NET Framework 4,5.
Vedere anche
Concetti
Configurazioni standard e personalizzate del set di strumenti