ProductCode
Identifiziert eine konkrete MSI-Produktinstanz. Er kann sich bei Major Upgrades aendern und ist deshalb nicht automatisch die beste Langzeit-Referenz fuer Produktfamilien.
MSI Artikel
Viele Paketierungen scheitern spaeter an falschen Annahmen ueber ProductCode und UpgradeCode. Dieser Artikel trennt Detection, Upgrade-Logik und Dokumentation sauber voneinander.
Identifiziert eine konkrete MSI-Produktinstanz. Er kann sich bei Major Upgrades aendern und ist deshalb nicht automatisch die beste Langzeit-Referenz fuer Produktfamilien.
Verbindet Versionen derselben Produktfamilie. Er ist meist stabiler und fuer Upgrade-Strategien oft aussagekraeftiger als der ProductCode allein.
$properties = 'ProductCode','UpgradeCode','ProductVersion','ProductName'
# Diese Werte sollten aus der MSI direkt gelesen und in der Paketdoku festgehalten werden.
Fuer eine konkrete installierte Version kann der ProductCode sinnvoll sein. Fuer eine Produktfamilie oder Upgradebeziehungen ist er allein oft zu kurz gedacht.
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.
Beide Werte gehoeren in jede Paketdoku. Wer nur den ProductCode dokumentiert, verliert spaeter schnell den Blick auf die eigentliche Upgrade-Linie.
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.