Condividi tramite


Configurazioni standard e personalizzate del set di strumenti

Aggiornamento: novembre 2007

MSBuild 3.5 include due set di strumenti predefiniti. I set di strumenti sono insiemi di attività, destinazioni e strumenti della riga di comando che è possibile utilizzare per compilare un progetto. È inoltre possibile creare set di strumenti personalizzati.

Nota:

Per comprendere meglio set di strumenti, framework di destinazione e ToolsVersions prima di continuare, è consigliabile leggere Scelta di versioni specifiche di .NET Framework con MSBuild.

Tipi di set di strumenti

Quando si definisce un set di strumenti personalizzato, viene definito anche il valore della directory alla quale $(MSBuildToolsPath) punta. Pertanto, è possibile utilizzare $(MSBuildToolsPath) in un file di progetto per importare attività e destinazioni anziché programmare i valori di attività e destinazione nel file di progetto. Ciò consente di definire globalmente set di strumenti nel Registro di sistema o in un file di configurazione in modo che sia possibile compilare sui desktop degli sviluppatori o in ambienti di lavoro di compilazione.

Utilizzando i set di strumenti, è possibile indirizzare MSBuild a versioni .NET Framework specifiche. È pertanto possibile compilare un progetto che funziona solo con Visual Studio 2008 e compilare progetti Visual Studio 2005 in Visual Studio 2008.

Visual Studio 2008 include due set di strumenti "standard". Un set di strumenti incluso anche in MSBuild 2.0, in Visual Studio 2005 viene indirizzato a .NET Framework 2.0. L'altro set di strumenti incluso in MSBuild 3.5, può essere indirizzato a .NET Framework 2.0, .NET Framework 3.0 e .NET Framework 3.5.

Configurazioni standard del set di strumenti

MSBuild 3.5 include i set di strumenti descritti di seguito:

ToolsVersion

MSBuildToolsPath o MSBuildBinPath

2.0

<Percorso di installazione di Windows>\Microsoft.Net\Framework\v2.0.50727\

3.5

<Percorso di installazione di Windows>\Microsoft.Net\Framework\v3.5.20223\

I set di strumenti standard sono disponibili ovunque nel computer quando viene eseguito MSBuild.exe o viene creata un'istanza del motore MSBuild, a meno che non vengano ignorate le informazioni nel set di strumenti nel file MSBuild.exe.config o in un file di configurazione specifico per l'host.

Il valore ToolsVersion specificato come attributo nel tag di progetto del file di progetto, determina quale set di strumenti viene utilizzato da un progetto generato in Visual Studio. ToolsVersion può essere considerato come "nome" di un set di strumenti. Se non è specificato nel progetto, viene utilizzato un valore ToolsVersion predefinito. Per MSBuild 3.5, il valore ToolsVersion predefinito viene impostato su 2.0. I progetti compilati senza un valore ToolsVersion esplicito, pertanto, utilizzeranno il set di strumenti 2.0 incluso in Visual Studio 2005. I progetti Visual Studio 2008 generano automaticamente tutti i progetti con un valore ToolsVersion pari a 3.5. Poiché utilizzano il nuovo set di strumenti, possono essere indirizzati a tutte e tre le versioni di .NET Framework.

Le informazioni dei set di strumenti standard vengono definite nelle chiavi del Registro di sistema seguenti:

Hive del Registro di sistema

Nome della chiave della stringa

Valore della chiave della stringa

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\3.5\

DefaultToolsVersion

2.0

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\2.0\

ToolsPath

Percorso di installazione di .NET Framework 2.0

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.5\

ToolsPath

Percorso di installazione di .NET Framework 3.5

DefaultToolsVersion specifica quali set di strumenti utilizzare quando si compila un progetto per il quale non è indicato alcun set di strumenti. Ad esempio, il valore DefaultToolsVersion per MSBuild in Visual Studio 2008 è 2.0. È possibile eseguire l'override del valore di DefaultToolsVersion nei file di configurazione specifici dell'host. Gli altri valori definiscono i percorsi di installazione per le versioni di .NET Framework.

Nota:

È consigliabile non modificare tali impostazioni a meno che non sia necessario. È possibile tuttavia aggiungere impostazioni personali e stabilire definizioni del set di strumenti personalizzati per tutto il computer, come descritto nella sezione successiva.

Definizioni di set di strumenti personalizzati

Se un set di strumenti standard non soddisfa i requisiti di compilazione, è possibile creare un set di strumenti personalizzato. Ad esempio, in un ambiente di compilazione potrebbe essere necessario disporre di un sistema di compilazione separato per compilare progetti Visual C++. Utilizzando un set di strumenti personalizzato, è possibile assegnare valori personalizzati all'attributo ToolsVersion quando si creano progetti o si esegue MSBuild.exe. In tal modo è possibile anche utilizzare la proprietà $(MSBuildToolsPath) per importare file con estensione targets dalla directory. In alternativa, è possibile utilizzare variabili di ambiente se non si è interessati a definire un set di strumenti separato.

Specificare il set di strumenti personalizzato nel file di configurazione per MSBuild.exe (o per un host personalizzato di MSBuild se si dispone di uno strumento separato che ospita il motore MSBuild). Ad esempio, il file di configurazione per MSBuild.exe potrebbe includere la definizione del set di strumenti seguente:

<msbuildToolsets default="3.0">
   <toolset toolsVersion="4.0">
      <property name="MSBuildToolsPath" 
        value="C:\Windows\Microsoft .NET\Framework\v3.0" />
   </toolset>
</msbuildToolsets>

<msbuildToolsets> è una sezione di configurazione .NET personalizzata che deve essere definita anche nel file di configurazione, come segue:

<configSections>
   <section name="msbuildToolsets"       
       Type="Microsoft.Build.BuildEngine.ToolsetConfigurationSection, 
       Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral, 
       PublicKeyToken=b03f5f7f11d50a3a"
   </section>
</configSections>
Nota:

Perché venga letto correttamente, il tag configSections deve essere il primo dopo il tag di configurazione.

ToolsetConfigurationSection è una sezione di configurazione personalizzata che può essere utilizzata da qualsiasi host per la configurazione personalizzata. Se si utilizza un set di strumenti personalizzato, per inizializzare il motore di compilazione un host deve solo fornire le voci del file di configurazione. Definendo le voci nel Registro di sistema, è possibile specificare set di strumenti per l'intero computer che si applicano a MSBuild.exe, Visual Studio e a tutti gli host di MSBuild.

Nota:

Se un file di configurazione definisce le impostazioni per un ToolsVersion già definito nel Registro di sistema, le due definizioni non vengono unite. La definizione nel file di configurazione ha la precedenza e le impostazioni nel Registro di sistema per ToolsVersion vengono ignorate.

Le proprietà seguenti sono specifiche per il valore di ToolsVersion utilizzato nei progetti:

  • $(MSBuildBinPath) - MSBuildBinPath è impostato sul valore ToolsPath specificato nel Registro di sistema o nel file di configurazione in cui ToolsVersion è definito. L'impostazione $(MSBuildToolsPath) nel Registro di sistema o nel file di configurazione specifica il percorso del set di strumenti. Nel file di progetto, esegue il mapping alla proprietà $(MSBuildBinPath) e anche alla proprietà $(MSBuildToolsPath).

  • $(MSBuildToolsPath) - Questa proprietà riservata viene fornita dalla proprietà MSBuildToolsPath specificata nel file di configurazione. Questa proprietà sostituisce $(MSBuildBinPath). Tuttavia,$(MSBuildBinPath) passa avanti per compatibilità.

È possibile anche aggiungere al file di configurazione proprietà personalizzate, proprietà specifiche per ToolsVersion, utilizzando la stessa sintassi che si utilizza per aggiungere la proprietà MSBuildToolsPath. Queste proprietà personalizzate sono disponibili per il file di progetto utilizzando lo stesso nome del valore specificato nel file di configurazione.

Vedere anche

Concetti

Concetti avanzati relativi a MSBuild