2017-09-15 2 views
2

Nous disposons d'un serveur TFS 2012 sur site et d'un serveur de génération. Nous sommes en train de mettre à niveau vers VS et TFS 2017. Actuellement, il y a la demande de mise en place d'un autre serveur de build qui nous permettra de construire de nouveaux projets 2017 à partir du serveur TFS existant. Je crée un nouveau serveur de build et y installe les services de build TFS 2012 ainsi que VS2017. J'ai créé une nouvelle définition de construction mais elle ne compile pas et les erreurs montrent des choses comme les changements de syntaxe pour 2017 qui sont invalides en 2012. Comment puis-je configurer cela pour construire le projet contre le VS2017 installé?Création d'un projet VS2017 avec le serveur de génération TFS 2012

+0

Nous utilisons le DefaultTemplate11.1xaml. J'ai lu qu'il y a de nouvelles versions qui obtiendront la version de MSBuild du nouveau chemin, mais je ne sais pas où obtenir ces nouveaux modèles. – Sam

+0

Les modèles de construction sont complètement différents dans TFS2017. Vous pourriez vouloir peser combien de temps cela peut prendre pour résoudre ce problème. Ce sera plus facile à mettre à jour. Je l'ai fait récemment et parce que vous êtes sur 2012, vous devrez passer à 2013 ou comme je l'ai fait en 2015 avant 2017. J'ai également dû modifier légèrement les modèles de processus. –

+0

Alors TFS 2012 ne peut pas aller directement à 2017? Nous n'étions pas au courant de cela. Est-ce que tu sais pourquoi? J'ai vu quelques endroits qui ont dit que DefaultTemplate.11.xaml pourrait être modifié pour pointer vers la nouvelle version MSBuild, mais la section mentionnée ne semble pas exister dans mes fichiers. – Sam

Répondre

1

Anciennes versions de Visual Studio installées msbuild dans C:\Program Files (x86)\MSBuild\<version>\bin et apparemment l'activité RunMSBuild a utilisé ToolVersion + ToolArchitecture pour calculer ce chemin. VS 2017 l'installe à la place C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ bin et le RunMSBuild ne peut plus calculer le chemin correct. Vous ne pouvez pas utiliser l'ancien DefaultTemplate11.1xaml pour intégrer VS2017. Pour que cela fonctionne, vous pouvez essayer de modifier le TFSBuildServiceHost.exe.config et une version de VS 2013 ou VS 2015 doit être installée sur le serveur de construction pour que cela fonctionne. Détails étape s'il vous plaît suivre de Jonesy2488 réponse dans ce lien: How to get VS 2017 working with TFS 2017 XAML Builds


De plus, XAML Construire sont désapprouvée dans TFS 2017 et ne sera pas disponible en TGE prochaine version de TFS (2018). VSTS ne les supporte plus.

Je suis à la recherche du contrôleur de construction XAML hébergé. Où est-il allé?

Le contrôleur de génération XAML hébergé n'est plus pris en charge. Les comptes créés à partir d'avril 2016 n'y ont pas accès. Nous prévoyons de supprimer le contrôleur de build XAML hébergé de tous les comptes, peut-être que dès Mars 2017.

Source

Puisque vous allez mettre à niveau et utiliser TFS2017. Nous vous recommandons fortement de convertir vos builds en vNext Build pour accéder à une nouvelle technologie et à un support. Pour plus d'informations, veuillez consulter Why Should I Leave XAML Builds?

+0

Oui, je me suis rendu compte que ce matin. J'ai lu à ce sujet. Je pense que je vais juste passer à la nouvelle plate-forme de construction. – Sam

+0

Bonne idée Sam, la meilleure pratique est de garder les applications sur la même version et le niveau sp dans l'organisation. –

2

Grâce à cet article, j'ai pu utiliser l'intégration continue de TFS 2012 avec la syntaxe C# 6 du serveur de construction en utilisant Visual Studio 2017. J'espère que cela permettra à la personne suivante d'essayer de comprendre .

Voici la liste des choses que j'ai changées afin que TFS 2012 construise la syntaxe C# 6. Sur la machine avec l'agent de construction, installer vs 2017 entreprise, sur la page de configuration de l'installation, assurez-vous construire que MS est sélectionné enter image description here

Modifier la définition de construction et assurez-vous que l'argument MSBuild est /tv:15.0 /p:GenerateBuildInfoConfigFile=false /p:VisualStudioVersion=15.0

enter image description here

Vérifiez le modèle que votre définition de construction utilise et modifiez-le en accédant à l'explorateur de contrôle de source et en entrant dans le projet d'équipe et sous BuildProcessTemplate, il doit avoir le.fichier xaml, modifiez-le en double-cliquant dessus enter image description here

Il devrait y avoir 2 actions qui disent Exécuter MSBuild pour le projet. Vous devez modifier les deux propriétés de leur chemin d'outil pour pointer vers le dossier parent msbuild.exe sur le serveur de génération. Dans mon cas, le serveur de construction est une machine 32 bits donc le chemin vers le dossier Bin n'a pas (x86) à côté de Program Files, vous devez vérifier votre serveur de construction pour entrer le bon chemin ici. enter image description here Après avoir effectué les modifications, vous devez enregistrer le xaml et l'enregistrer.

+0

Salut, @gavin, xaml n'est pas le meilleur pour la recherche, pourriez-vous, s'il vous plaît, dire où sa structure est la variable ToolPath? –