web-dev-qa-db-fra.com

Mettez à jour Build Controller / Agents pour créer l'application C # 6 / .NET 4.6

voici la scène:

Nous utilisons Visual Studio Online et un serveur de build sur site dans notre réseau d'entreprise avec TFS 2013 pour créer notre solution après les enregistrements et les versions bloquées.

Nous avons maintenant mis à niveau de Visual Studio 2013 vers Visual Studio 2015 Enterprise et mis à niveau vers la nouvelle version .NET. Nous étions vraiment impatients d'utiliser les nouvelles fonctionnalités de C # 6 mais après le premier enregistrement, nous avons constaté que la construction avait échoué.

(Désolé pas d'image ici car j'ai un manque de réputation)

Message d'exception: l'erreur MSBuild 1 a terminé cette génération. Vous pouvez trouver des informations plus spécifiques sur la cause de cette erreur dans les messages ci-dessus. (type BuildProcessTerminateException) Trace de pile d'exceptions: à System.Activities.Statements.Throw.Execute (contexte CodeActivityContext) à System.Activities.CodeActivity.InternalExecute (instance ActivityInstance, ActivityExecutor exécuteur, BookmarkManager bookmarkManager) à System.Activities.Runtime.ActivityExActivity .ExecuteBody (exécuteur ActivityExecutor, BookmarkManager bookmarkManager, Location resultLocation) ApplicationManager.cs (33, 0) Caractère inattendu '$' ApplicationManager.cs (33, 0); attendu

Il semble que l'agent de construction ne comprenne pas la nouvelle syntaxe et compile toujours avec l'ancienne version.

Ce que j'ai fait pour y remédier était:

  • Installer Visual Studio 2015 sur le serveur de build sur site (l'ancienne version de Visual Studio 2013 est toujours installée)

  • Redémarré le contrôleur de build

  • J'ai suivi les étapes ici: https://stackoverflow.com/a/28327275/491906

Qui installe essentiellement Visual Studio 2015 et les nouveaux outils de build Microsoft

  • Et les étapes de ici qui étaient très prometteuses:

J'ai créé une nouvelle définition de build avec l'un des modèles

Création d'un nouveau pool d'agents via l'accès Web pour Visual Studio Online. Téléchargé

configureAgent.ps1 et exécuté sur le serveur de génération pour créer un nouveau

agent. Mais je n'arrivais pas à comprendre comment utiliser l'agent nouvellement créé.

Ma question est: comment puis-je mettre à jour les agents de build pour qu'ils s'exécutent sans échec dans

par rapport à la nouvelle version .NET?

18
David Hessling

Je soupçonne que vous utilisez toujours l'agent Build 2013? Dans ce cas, ouvrez votre modèle de processus de génération et recherchez la tâche "Exécuter Msbuild pour le projet". Définissez la propriété ToolPath à l'emplacement où votre v14 MsBuild est installé. Défaut:

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

Cela devrait vous permettre d'utiliser les éléments de syntaxe C # 6.

Supprimer les étapes de ce post en supprimant les packages de nuget Roslyn, le package NuGet n'est plus nécessaire maintenant que Visual Studio 2015 est RTM. Le même package n'est plus pris en charge pour VS2013.

Le nouvel agent de génération TFS 2015 que vous avez téléchargé ne parle pas à TFS 2013, pas plus qu'un agent de génération TFS 2015 XAML. Tant que votre serveur exécute TFS 2013, vous êtes bloqué à l'aide de TFS Build 2010 jusqu'en 2013 inclus.

Lors de la connexion à VSO, vous devriez pouvoir utiliser le nouvel agent de génération 2015 . Mais vous devez créer une nouvelle définition de build à l'aide de l'interface Web. Vous ne pouvez pas utiliser votre définition de build XAML en cours de sortie avec le nouvel agent de build.

Vous pouvez également installer l'agent XAML TFS 2015. Pour l'installer installez TFS 2015 sur le serveur de build et exécutez uniquement les étapes pour configurer l'agent de build XAML . Cela supprimera le serveur de build TFS 2013 de votre machine.

15
jessehouwing

Je ne peux pas définir la propriété toolPath car "Exécuter Msbuild pour le projet" est remplacé par une activité "Exécuter MSBuild" plus abstraite dans mon "TfvcTemplate.12.xaml" utilisé. Je pense qu'il est venu avec TFS 2013 Update 4.

J'ai installé VS 2015 sur la BuildMachine.

Et j'ai changé les builds en ajoutant le paramètre /tv: 14.0 comme argument MSBuild (dans Build-Definition\Process\2.Build\5.Advanced\Arguments MSBuild)

Cela a fonctionné pour moi. Voir la réponse de marson

8
gReX