- Native Windows-Entwicklung ist durch die Abhängigkeit von der Installation von Visual Studio komplex und ineffizient
- Installationsgrößen von mehreren Dutzend GB, intransparente Verwaltung von Komponenten und Probleme durch Versionsabweichungen senken die Produktivität von Entwicklern
- Um das zu lösen, wurde das leichtgewichtige CLI-Tool
msvcup entwickelt, mit dem sich MSVC-Toolchain und Windows SDK versionsweise und isoliert automatisch installieren lassen
msvcup bietet durch Parsing von JSON-Manifests, automatische Umgebungseinrichtung (autoenv) und Unterstützung für Lock-Dateien reproduzierbare Build-Umgebungen
- Dieser Ansatz macht ein vollständig automatisiertes, skriptbasiertes Build-System möglich, ohne vom Visual Studio Installer abhängig zu sein
Probleme der nativen Windows-Entwicklung
- Der bisherige Ansatz, Visual Studio installieren zu müssen, belastet Entwickler durch einen komplizierten Installationsprozess und instabiles Abhängigkeitsmanagement
- Erfordert detaillierte Auswahl wie den Workload „Desktop development with C++“ oder bestimmte SDK-Versionen; bei falscher Auswahl schlägt der Build fehl
- Die Installation kann 50 GB erreichen, und selbst nach der Deinstallation bleiben Registry-Reste und Hintergrunddienste zurück
- Unter Linux lässt sich eine Toolchain mit einer einzigen Paketmanager-Zeile installieren, unter Windows müssen dagegen Tausende Komponenten manuell ausgewählt werden
- Visual Studio ist eine monolithische Struktur, in der Editor, Compiler und SDK miteinander verknüpft sind, was Versionsverwaltung und reproduzierbare Umgebungen erschwert
- Dadurch treten häufig Inkonsistenzen nach dem Muster „auf meinem PC funktioniert es“ auf, was als Einstiegshürde für native Entwicklung wirkt
msvcup: ein neuer Ansatz
- msvcup ist ein Open-Source-CLI-Tool, das MSVC-Toolchain und Windows SDK direkt herunterlädt und installiert, ganz ohne Visual-Studio-Installation
- Jede Version wird in einem isolierten Verzeichnis unter
C:\msvcup\ installiert, sodass mehrere Versionen parallel ohne Konflikte genutzt werden können
- Die Installation ist in wenigen Minuten abgeschlossen, inklusive ARM-Cross-Compile-Tools
- Der Befehl
msvcup install installiert die benötigten Pakete, und der Befehl autoenv erzeugt ein automatisches Umgebungsverzeichnis
- Dieses Verzeichnis enthält Wrapper-Executables, die Umgebungsvariablen automatisch setzen, sowie eine Datei
toolchain.cmake, sodass sich auch CMake-Projekte ohne zusätzliche Konfiguration bauen lassen
- Im Beispielskript
build.bat lässt sich ein „Hello, World“-Programm mit msvcup ohne Visual Studio bauen
- Funktioniert unter Windows 10 oder neuer, solange
curl und tar vorhanden sind
Funktionsweise im Inneren
- Es werden die von Microsoft bereitgestellten JSON-Manifests für Visual-Studio-Komponenten geparst, um nur die benötigten Pakete zu identifizieren
- Kernbestandteile wie Compiler, Linker, Header und Bibliotheken werden direkt vom Microsoft-CDN heruntergeladen
- Installierte Komponenten werden über eine Lock-Datei (
lock file) verwaltet, sodass das gesamte Team dieselben Paketversionen gemeinsam nutzen kann
- Die Befehle
install und autoenv sind idempotent, und wenn bereits alles installiert ist, sind sie in wenigen Millisekunden abgeschlossen
Praxisbeispiel
- Tuple (Pair-Programming-App) hat
msvcup in sein CI-Build-System integriert und damit die Anforderung entfernt, Visual Studio vorab zu installieren
- Hunderte C/C++-Projekte einschließlich WebRTC lassen sich mit derselben Toolchain/demselben SDK bauen
- Unterstützt sowohl x86_64- als auch ARM-Builds
- Vorteile
- Durch versionsweise Verzeichnisinstallation sind parallele Versionsverwaltung und einfache Neuinstallation möglich
- Automatische Unterstützung für Cross-Compilation, keine separate Konfiguration erforderlich
- Reproduzierbarkeit auf Basis von Lock-Dateien, Änderungen auf Microsoft-Seite werden sofort sichtbar
- Hohe Ausführungsgeschwindigkeit, keine unnötigen Neuinstallationen
Grenzen und Erweiterung
msvcup ist auf die Compiler-Toolchain ausgerichtet; wenn die Visual-Studio-IDE selbst benötigt wird, ist die offizielle Installation weiterhin erforderlich
- In den meisten nativen Entwicklungs-Workflows bietet es jedoch eine vollständige Build-Umgebung auch ohne IDE
- Das als Beispiel gezeigte raylib-Build-Skript installiert SDK und Toolchain automatisch und baut das Projekt auch ohne Visual Studio
- Vollständig automatisierter Build-Prozess nur über die Kommandozeile, ohne GUI
Fazit
msvcup beseitigt die Komplexität des Visual Studio Installers und bietet eine leichtgewichtige native Build-Umgebung mit Versionskontrolle
- Dieser Ansatz macht native Windows-Entwicklung reproduzierbar und automatisiert und hilft Entwicklern, sich von der IDE-Abhängigkeit zu lösen
- Repo : https://github.com/marler8997/msvcup
Noch keine Kommentare.