- 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.