Utiliser Visual Studio 2022 dans un Pipeline Azure DevOps Server

Actuellement, les pipelines d’Azure DevOps Server ne supportent pas directement le tooling de Visual Studio 2022 (Build Tools 2022). Plus exactement, ce sont les tâches qui ne savent pas utiliser ces outils. Même si les agents de build reconnaissent bien les capacités déployées via Visual Studio Installer 2022, les tâches sont incapables de les utiliser.

Avec Azure DevOps, il n’y a pas de problème. Ce souci est propre à la version on premise.

Des solutions ?

Visual Studio étant sorti il y a déjà quelques mois, il existe de nombreuses solutions de contournement. La plus efficace consiste à pousser manuellement des tâches compatibles. Bien évidemment, les agents de build doivent aussi être mis à jour (voir mon article sur le sujet).

Même si j’ai testé l’approche (et qu’elle fonctionne), il y a quelques détails qui me dérangent :

  • Quid du comportement du serveur lors de l’installation du prochain patch. J’ai déjà été bloqué avec un serveur incapable de migrer automatiquement. Je ne veux pas revivre la même aventure.
  • Les tâchent évoluent régulièrement, et Visual Studio installer pousse régulièrement des mises à jour. Comment être certain d’avoir toujours des versions compatibles ?
  • Je ne suis pas super chaud pour modifier un serveur qui fonctionne bien alors que des solutions plus simples existent.

Comment faire plus simple

Comme souvent avec les produits de Microsoft, le fait de connaitre l’historique d’un produit aide beaucoup. Dans le cas présent, il faut se souvenir qu’avant d’avoir les tâches .net core CLI, et Visual Studio Build, nous avions le bon vieux MS Build.

La tâche MS Build a l’avantage de pouvoir être paramétrée très finement. Il est entre autres possible de spécifier le chemin à utiliser pour trouver MS Build.

Pour un pipeline YAML, il suffit d’utiliser la propriété msbuildLocation.

# MSBuild
# Build with MSBuild
- task: MSBuild@1
  inputs:
    solution: '$/$(projectDirectory)/build.xml' 
    msbuildLocation: 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\amd64\'


Pour un pipeline Classic, il suffit de sélectionner l’option "Specify Location", et renseigner le champ "Path to MSBuild"

Option "Specify Location" selectionner, et "Path to MSBuild" renseigné

Conclusion

Dans quelques mois, nous devrions pouvoir utiliser les Builds Tools 2022 plus facilement.
En attendant : c’est dans les vieux pots que l’on fait les meilleures soupes ;)

Jérémy Jeanson

Comments

You have to be logged in to comment this post.