MSI Artikel

MSI UpgradeCode vs ProductCode richtig nutzen.

Viele Paketierungen scheitern spaeter an falschen Annahmen ueber ProductCode und UpgradeCode. Dieser Artikel trennt Detection, Upgrade-Logik und Dokumentation sauber voneinander.

ProductCode

Identifiziert eine konkrete MSI-Produktinstanz. Er kann sich bei Major Upgrades aendern und ist deshalb nicht automatisch die beste Langzeit-Referenz fuer Produktfamilien.

UpgradeCode

Verbindet Versionen derselben Produktfamilie. Er ist meist stabiler und fuer Upgrade-Strategien oft aussagekraeftiger als der ProductCode allein.

PowerShell
$properties = 'ProductCode','UpgradeCode','ProductVersion','ProductName'
# Diese Werte sollten aus der MSI direkt gelesen und in der Paketdoku festgehalten werden.

Detection

Fuer eine konkrete installierte Version kann der ProductCode sinnvoll sein. Fuer eine Produktfamilie oder Upgradebeziehungen ist er allein oft zu kurz gedacht.

Upgrade

Wenn du verstehen willst, ob Version 5.x Version 4.x ersetzt, ist der UpgradeCode oft der wichtigere Anker. Dazu kommt die Upgrade-Tabelle im MSI selbst.

Dokumentation

Beide Werte gehoeren in jede Paketdoku. Wer nur den ProductCode dokumentiert, verliert spaeter schnell den Blick auf die eigentliche Upgrade-Linie.

Typischer Fehler

Detection und Deinstallation werden komplett auf einen einzelnen ProductCode gebaut, obwohl bei Major Upgrades neue Codes auftauchen und das Paket dann ploetzlich "nicht mehr erkannt" wird.