09 December 2012 Installer, Update, Wix Robert Muehsig

Wer Setups / Installer (gibts da eigentlich ein Unterschied zwischen den Begriffen?) in der Windows Welt baut, der kennt vermutlich das Windows Installer XML (Wix). Toolset.

Versionsnummern in Wix

Beim Bauen des Installers kann man eine Versionsnummer nach dem üblichen System Major.Minor.Build.Revision festlegen, welche dann auch bei den Programmen in der Systemverwaltung dargestellt wird:

image

Was im Upgrade-Fall zählt

Wenn die Software mit der Version 1.0.0.0 installiert wurde und man baut nun eine Version 2.0.0.0 installieren möchte erkennt Wix die alte Software automatisch und entfernt diese und fügt die neue dann hinzu – so bleibt das System clean.

Problematisch wird es, wenn man nur die letzte Stelle der Version verändert: Darauf reagiert Wix nicht.

Beispiel:

Version 1.0.0.0 installiert und Version 1.0.0.1 wird ausgeliefert. In diesem Fall wird der Installer das alte Program nicht “löschen”, sondern es nochmal neu installieren. Erst bei der Versionsnummer 1.0.1.0 erkennt er, dass alte Versionen vorhanden sind und dann funktioniert der Upgrade-Prozess.

Mehr zum Nachlesen gibt es auf den offiziellen Seiten.

Wie bin ich zu dem Problem gekommen?

Ich bin auf das Problem gestoßen, da unser Nightly Build System bislang nach diesem System Versionsnummern generiert hat: 1.0.YYMM.DDBuildNumber – d.h. wenn ich täglich den Nightly Build installiere hätte ich am Ende des Monats mein System etwas vollgestopft mit unnötigen Ballast ;)

Vielen Dank auch an Sebastian Seidel – welcher per Twitter immer gute Tipps zum Thema Installer geben kann.

Zusammenfassung:

Wix-Versionssystem: Nummer.Nummer.Nummer.IstEgal


Written by Robert Muehsig

Software Developer - from Saxony, Germany - working on primedocs.io. Microsoft MVP & Web Geek.
Other Projects: KnowYourStack.com | ExpensiveMeeting | EinKofferVollerReisen.de