8 points par GN⁺ 2026-02-16 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Le développement natif sous Windows est complexe et inefficace à cause de la dépendance à l’installation de Visual Studio
  • Des dizaines de Go à installer, une gestion opaque des composants et des problèmes d’incohérence de versions nuisent à la productivité des développeurs
  • Pour résoudre cela, un outil CLI léger, msvcup, a été développé afin de permettre l’installation automatique, isolée et par version de la toolchain MSVC et du Windows SDK
  • msvcup fournit un environnement de build reproductible grâce au parsing de manifestes JSON, à la configuration automatique de l’environnement (autoenv) et à la prise en charge des lock files
  • Cette approche permet un système de build entièrement automatisé et piloté par scripts sans dépendre du Visual Studio Installer

Les problèmes du développement natif sous Windows

  • La méthode traditionnelle, qui impose d’installer Visual Studio, pèse sur les développeurs à cause d’un processus d’installation complexe et d’une gestion instable des dépendances
    • Il faut sélectionner en détail la charge de travail “Desktop development with C++”, une version précise du SDK, etc., et un mauvais choix peut faire échouer le build
    • L’installation peut atteindre 50 Go et, même après désinstallation, il reste des entrées de registre résiduelles et des services en arrière-plan
  • Sous Linux, une seule commande du gestionnaire de paquets suffit pour installer une toolchain, alors que sous Windows il faut choisir manuellement des milliers de composants
  • Visual Studio adopte une structure monolithique où éditeur, compilateur et SDK sont étroitement liés, ce qui complique la gestion des versions et la reproductibilité des environnements
  • Résultat : les écarts du type « ça marche sur mon PC » sont fréquents, ce qui devient une barrière à l’entrée pour le développement natif

msvcup : une nouvelle approche

  • msvcup est un outil CLI open source qui télécharge et installe directement la toolchain MSVC et le Windows SDK sans installation de Visual Studio
    • Chaque version est installée dans un répertoire isolé sous C:\msvcup\, ce qui permet de faire cohabiter plusieurs versions sans conflit
    • L’installation se termine en quelques minutes, avec inclusion automatique des outils de cross-compilation ARM
  • La commande msvcup install installe les paquets nécessaires, et la commande autoenv crée un répertoire d’environnement automatique
    • Ce répertoire contient des exécutables wrapper qui définissent automatiquement les variables d’environnement ainsi qu’un fichier toolchain.cmake, ce qui permet aussi de builder des projets CMake sans configuration supplémentaire
  • Dans l’exemple de script build.bat, msvcup permet de builder un programme “Hello, World” sans Visual Studio
    • Il fonctionne sous Windows 10 ou version ultérieure avec seulement curl et tar

Fonctionnement interne

  • L’outil parse les manifestes JSON des composants Visual Studio distribués par Microsoft afin d’identifier uniquement les paquets nécessaires
    • Les éléments essentiels — compilateur, linker, headers, bibliothèques, etc. — sont téléchargés directement depuis le CDN de Microsoft
  • Les composants installés sont gérés via un lock file, ce qui permet à toute l’équipe de partager exactement les mêmes versions de paquets
  • Les commandes install et autoenv sont idempotentes et, si tout est déjà installé, elles se terminent en quelques millisecondes

Cas d’usage réel

  • Tuple (application de pair programming) a intégré msvcup à son système de build CI, supprimant ainsi la nécessité d’avoir Visual Studio préinstallé
    • Il devient possible de builder des centaines de projets C/C++, y compris WebRTC, avec la même toolchain et le même SDK
    • Les builds x86_64 et ARM sont tous deux pris en charge
  • Avantages
    • L’installation dans des répertoires par version permet une gestion parallèle des versions et une réinstallation facile
    • Prise en charge automatique de la cross-compilation, sans configuration séparée
    • Reproductibilité garantie via les lock files, avec détection immédiate des changements côté Microsoft
    • Exécution rapide, sans réinstallations inutiles

Limites et extension

  • msvcup est conçu avant tout autour de la toolchain de compilation ; si l’IDE Visual Studio lui-même est nécessaire, l’installation officielle reste indispensable
  • Cependant, dans la plupart des workflows de développement natif, il fournit un environnement de build complet sans IDE
  • Le script de build raylib donné en exemple installe automatiquement le SDK et la toolchain puis build le projet, sans Visual Studio
    • Le processus de build est entièrement automatisé en ligne de commande, sans GUI

Conclusion

  • msvcup élimine la complexité du Visual Studio Installer et fournit un environnement de build natif léger et versionnable
  • Cette approche transforme le développement natif sous Windows en un modèle reproductible et automatisé, en aidant les développeurs à se libérer de la dépendance à l’IDE
  • Repo : https://github.com/marler8997/msvcup

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.