Condividi tramite


Override delle impostazioni ToolsVersion

Aggiornamento: novembre 2007

Utilizzando l'opzione (o /tv in breve) /ToolsVersion o la proprietà $(ProjectToolsVersion), è possibile eseguire l'override dell'impostazione ToolsVersion nel file di progetto che consente, ad esempio, di compilare un progetto in una soluzione con una versione del set di strumenti diversa da quella degli altri progetti. È anche possibile eseguire l'override di ToolsVersion dell'attività di MSBuild utilizzando il parametro dell'attività ToolsVersion.

Per ulteriori informazioni su ToolsVersion, vedere Scelta di versioni specifiche di .NET Framework con MSBuild.

Override delle impostazioni ToolsVersion di progetti da riga di comando

Anche se i progetti Visual Studio 2008 in genere vengono compilati con la versione di ToolsVersion specificata nel file di progetto, è possibile utilizzare l'opzione /ToolsVersion (o /tv) della riga di comando per eseguire l'override del valore e compilare tutti i progetti e le dipendenze tra progetti con un set di strumenti diverso. Ad esempio:

C:\windows\microsoft.net\framework\v3.5>msbuild.exe someproj.proj /tv:3.5 /p:Configuration=Debug

Nel seguente esempio tutti i progetti vengono compilati utilizzando ToolsVersion 3.5. Vedere la sezione "Ordine di precedenza" più avanti in questo argomento.

Quando si utilizza l'opzione /tv della riga di comando, è possibile utilizzare facoltativamente la proprietà $(ProjectToolsVersion) nei progetti singoli per compilarli con un valore ToolsVersion diverso dagli altri progetti della soluzione.

Override delle impostazioni ToolsVersion utilizzando il parametro ToolsVersion dell'attività MSBuild.

L'attività MSBuild è il mezzo principale perché un progetto ne compili un altro. Per consentire all'attività MSBuild di compilare un progetto con un ToolsVersion diverso da quello specificato nel progetto, è disponibile un parametro dell'attività facoltativo denominato ToolsVersion. Di seguito è riportato un esempio del relativo utilizzo:

<MSBuild Projects="MyProject1" 
         Targets="Build" 
         Properties="Configuration=Debug" 
         ToolsVersion="2.0">
    <Output TaskParameter="TargetOutputs" ItemName="Outputs" /> 
</MSBuild>

Ordine di precedenza

L'ordine di precedenza, da più elevato a più basso, usato determinare il ToolsVersion utilizzato da un progetto da compilare è:

  1. L'attributo ToolsVersion sull'attività MSBuild utilizzato per compilare il progetto, se disponibile.

  2. L'opzione /tv utilizzata in msbuild.exe se disponibile (simile all'attività msbuild esterna).

  3. L'attributo ToolsVersion del file di progetto.

  4. La versione predefinita del file config.

  5. La versione predefinita degli strumenti nel Registro di sistema.

I numeri 1, 2 e 3 corrispondono alle proprietà:

  • L'attributo delle proprietà sull'attività MSBuild

  • L'opzione /p: di msbuild.exe

  • Il tag della proprietà nel file di progetto

Se non si specifica un valore per /ToolsVersion quando si compila dalla riga di comando, le soluzioni Visual Studio 2005 verranno compilate utilizzando un valore ToolsVersion pari a "2.0" e le soluzioni Visual Studio 2008 verranno compilate utilizzando un valore ToolsVersion pari a "3.5".

Vedere anche

Altre risorse

Concetti relativi a MSBuild

Compilazione per una versione specifica di .NET Framework