Partage via


Nouveautés de MSBuild 17

Cet article décrit les mises à jour significatives dans MSBuild 17.0. Pour obtenir les notes de publication détaillées pour chaque version, consultez versions MSBuild.

MSBuild 17.0 fourni avec Visual Studio 2022 et .NET 6.0.

Chemin modifié

MSBuild est installé dans le dossier \Current sous chaque version de Visual Studio, et les exécutables se trouvent dans le sous-dossier \Bin. Par exemple, le chemin d’accès à MSBuild.exe installé avec Visual Studio 2022 Community est C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe Vous pouvez également utiliser le module PowerShell suivant pour localiser MSBuild : vssetup.powershell.

Propriétés modifiées

Les propriétés MSBuild suivantes ont été mises à jour en raison du nouveau numéro de version.

  • MSBuildToolsVersion pour cette version des outils reste « Actuel ». La version de l’assembly est la même que dans Visual Studio 2017 et Visual Studio 2019, qui est 15.1.0.0.

  • VisualStudioVersion pour cette version des outils est « 17.0 »

64 bits

MSBuild.exe avait déjà des versions 32 bits et 64 bits, mais maintenant, la version 64 bits est la version par défaut. Visual Studio 2022 utilise la version 64 bits de MSBuild pour toutes les builds. La version 32 bits est toujours disponible, mais nous vous recommandons de basculer toutes les builds vers la version 64 bits.

Pour les propriétaires de tâches, cela signifie que lorsque MSBuild charge votre tâche, elle tente de la charger dans un processus 64 bits. Nous vous recommandons de mettre à jour vos tâches pour qu’elles s’exécutent dans un processus 64 bits, mais pour la compatibilité, vous pouvez indiquer à MSBuild que votre tâche s’exécute en tant que 32 bits uniquement dans leur UsingTask.

Améliorations des performances

MSBuild est plus rapide ! Le focus de cette version a été d’améliorer les performances pour de nombreux scénarios courants. MSBuild 17.0 peut créer des projets plus volumineux, plus rapidement.

Versions de .NET

MSBuild (et Visual Studio) cible désormais .NET Framework 4.7.2 et .NET 6.0. Si vous souhaitez utiliser les nouvelles fonctionnalités de l’API MSBuild, votre assembly doit également être mis à niveau, mais le code existant continue de fonctionner.

Journaux

Les journaux binaires sont plus petits et contiennent plus d’informations.

Dans MSBuild 17.8 et versions ultérieures, essayez le nouvel enregistreur d’événements terminal (-terminalLogger ou -tl option sur la ligne de commande) pour améliorer la sortie de la console.

Modifications avec rupture

  • La méthode GetType() ne peut plus être appelée dans les fonctions de propriété.
  • MSBuild pour .NET cible .NET 6.

Autres changements de comportement

  • MSBuildCopyContentTransitively est désormais activé par défaut, ce qui garantit la cohérence dans les dossiers de sortie sur les builds incrémentielles.

Pour plus d’informations sur les modifications apportées à cette version, consultez les notes de publication détaillées et, pour les modifications dans les versions de MSBuild auxquelles vous pouvez renoncer, consultez les vagues de modifications .