2015-09-16 24 views
5

Attualmente molti sviluppatori utilizzano Visual Studio 2012 e mi piacerebbe aggiornarli al 2015 in due fasi. Primo aggiornamento a Visual Studio 2015, quindi eseguire l'aggiornamento al nuovo set di strumenti MSBuild (compilatore). Questo è importante perché vorrei che i build in Visual Studio utilizzassero lo stesso set di strumenti delle build nei nostri script di build, che sono disponibili sui computer degli sviluppatori e utilizzati dai server di build. Vorrei evitare di scegliere un giorno e dire a ogni sviluppatore di installare Visual Studio 2015 e, contemporaneamente, di spingere i changeset verso i nostri repository/branch per aggiornare gli script di compilazione in una volta sola.Compilazione con gli strumenti di Visual Studio 2012 tramite Visual Studio 2015

Da quanto ho capito, lo ToolsVersion attribute del file Project element nel file di progetto guida la distinzione tra le versioni di MSBuild. Tuttavia, durante la creazione di un progetto con ToolsVersion = 4.0 in Visual Studio 2015, ricevo i seguenti messaggi:

Edificio con versione di strumenti "14.0".
Il file di progetto contiene ToolsVersion = "4.0". Questo set di strumenti potrebbe essere sconosciuto o mancante, in cui è possibile risolvere il problema con installando la versione appropriata di MSBuild oppure la build potrebbe essere stata forzata a una determinata versione di Strumenti per motivi di politica. Trattare il progetto come se fosse ToolsVersion = "14.0". Per ulteriori informazioni, vedere http://go.microsoft.com/fwlink/?LinkId=293424.

In aggiunta a ciò, posso seguire l'output di build e vedere che è in effetti utilizzando il set di strumenti di Visual Studio 2015 per compilare il codice. So che il set di strumenti "4.0" non manca (ho installato Visual Studio 2012, insieme alle versioni di .NET Framework che includono quella versione di MSBuild), quindi presumo che Visual Studio 2015 non riesca a trovarlo, oppure è una "ragione politica" che non capisco.

In base alla pagina MSDN per Standard and Custom Toolset Configurations, MSBuild 12.0 (Visual Studio 2013) include il set di strumenti 4.0. Tuttavia non riesco a trovare alcuna informazione su MSBuild 14.0 (Visual Studio 2015).

È possibile creare in Visual Studio 2015, ma utilizzare il set di strumenti di Visual Studio 2012? Se é cosi, come? E quali sono i "motivi di politica" menzionati nell'avviso di costruzione?

risposta

0

Soluzione

le tue sviluppatori impostare la variabile d'ambiente MSBUILDDEFAULTTOOLSVERSION-4.0. Un modo semplice per farlo è quello di avere correre aprire un prompt PowerShell elevata ed eseguire:

[Environment]::SetEnvironmentVariable("MSBUILDDEFAULTTOOLSVERSION", "4.0", "Machine") 

Visual Studio dovrà essere riaperto prima che riprenderà questo cambiamento. Una volta che si è pronti per l'aggiornamento alla nuova toolset MSBuild, avere gli sviluppatori rimuovere tale variabile d'ambiente:

[Environment]::SetEnvironmentVariable("MSBUILDDEFAULTTOOLSVERSION", "4.0", "Machine") 

Sfondo

Da MSDN (sottolineatura mia):

partire in Visual Studio 2013 , la versione di MSBuild Toolset è la uguale al numero di versione di Visual Studio.Per impostazione predefinita, MSBuild è impostato su Toolset all'interno di Visual Studio e sulla riga di comando, indipendentemente da , la versione del set di strumenti specificata nel file di progetto. Questo comportamento può essere sovrascritto utilizzando il flag/ToolsVersion. Per ulteriori informazioni, vedere Overriding ToolsVersion Settings.

Per inciso, per verificare quali set di strumenti di MSBuild sono disponibili su una macchina e dove si trovano, si può solo aprire PowerShell ed eseguire:

dir HKLM:\Software\Microsoft\MSBuild\ToolsVersions 
Problemi correlati