2015-07-27 7 views
15

ecco la scena:Aggiornamento Costruire Controller/Agenzia per costruire C# 6 /.NET 4.6 applicazione

Usiamo Visual Studio in linea e un build server on-premise nella nostra rete aziendale con TFS 2013 per costruire la nostra soluzione dopo gated check-in e comunicati.

Ora abbiamo eseguito l'aggiornamento da Visual Studio 2013 a Visual Studio 2015 Enterprise e aggiornato alla nuova versione .NET. Siamo davvero desiderosi di utilizzare le nuove funzionalità di C# 6, ma dopo il primo check-in abbiamo riscontrato che la build non è andata a buon fine.

(Spiacente, non immagine qui come ho una mancanza di reputazione)

Messaggio eccezione: MSBuild errore 1 si è concluso questa build. Puoi trovare informazioni più specifiche sulla causa di questo errore nei messaggi sopra . (tipo BuildProcessTerminateException) eccezione dello stack: a System.Activities.Statements.Throw.Execute (CodeActivityContext contesto) a System.Activities.CodeActivity.InternalExecute (activityInstance esempio, ActivityExecutor esecutore, BookmarkManager BookmarkManager) a System.Activities .Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody (ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation) ApplicationManager.cs (33, 0) Carattere imprevisto '$' ApplicationManager.cs (33, 0); atteso

Sembra che l'agente di generazione non comprenda la nuova sintassi e compaia ancora con la versione precedente.

Quello che ho fatto al fine di risolvere il problema era:

  • Installare Visual Studio 2015 sul server di build on-premise (la vecchia versione di Visual Studio 2013 è ancora installato)

  • riavviato il costruire regolatore

  • seguita la procedura di qui: https://stackoverflow.com/a/28327275/4919063

che è fondamentalmente l'installazione di Visual Studio 2015 e il nuovo Microsoft creare strumenti

  • ei passi in here che erano molto promettenti:

ho creato una nuova definizione di compilazione con uno dei modelli

Creato un nuovo pool di agenti tramite l'accesso Web per Visual Studio Online. Scaricato

il ConfigureAgent.ps1 ed eseguito sul server di build per creare un nuovo agente

. Ma non riuscivo a capire come utilizzare l'agente appena creato.

La mia domanda è: Come posso aggiornare gli agenti di build per eseguire senza guasti in

rispetto alla nuova versione di .NET?

risposta

14

Sospetto che tu stia ancora utilizzando l'agente Build 2013? In tal caso, apri il modello di processo di build e cerca l'attività "Esegui Msbuild per progetto". Impostare la proprietà ToolPath nella posizione in cui è installato il MsBuild v14. Default:

C:\Program Files (x86)\MSBuild\14.0\Bin 

Ciò dovrebbe consentire di utilizzare gli elementi di sintassi C# 6.

Rimuovere the steps from this post rimuovendo i pacchetti di Roslyn nuget, il pacchetto NuGet non è più necessario ora che Visual Studio 2015 è RTM. Lo stesso pacchetto non è più supportato per VS2013.

Il nuovo agente di creazione TFS 2015 scaricato non parla con TFS 2013, né un agente di creazione XAML TFS 2015. Finché il tuo server esegue TFS 2013, sei bloccato usando TFS Build 2010 fino al 2013 incluso.

Quando ci si connette a VSO you should be able to use the new 2015 build agent. Ma è necessario creare una nuova definizione di build utilizzando l'interfaccia Web. Non è possibile utilizzare la definizione di build XAML esistente con il nuovo agente di creazione.

È inoltre possibile installare l'agente XAML TFS 2015. Per installarlo install TFS 2015 on the build server and only run the steps to configure the XAML build agent. Questo rimuoverà il server di generazione TFS 2013 dal tuo computer.

+0

Grazie mille per la risposta! –

+1

Quando si imposta ToolPath, assicurarsi di circondare il percorso con virgolette doppie. Altrimenti verrà visualizzato l'errore di compilazione "Errore (s) del compilatore rilevato durante l'elaborazione dell'espressione" C: \ Programmi (x86) \ MSBuild \ 14.0 \ Bin "' –

7

Non riesco a impostare la proprietà toolPath perché "Esegui Msbuild per progetto" è sostituito da un più astratto "Esegui MSBuild" -Attività nel mio usato "TfvcTemplate.12.xaml". Penso che sia arrivato con l'aggiornamento TFS 2013 4.

Ho installato VS 2015 su BuildMachine.

E ho cambiato le generazioni aggiungendo il parametro /tv:14.0 come argomento MSBuild (Build-Definition \ Process \ 2.Build \ 5.Advanced \ argomenti MSBuild)

questo ha funzionato per me. Vedi risposta dal marson