Dies kann nicht in einer benutzerdefinierten Aktion durchgeführt werden. Es ist wahr, dass Sie die ProductName-Eigenschaft in einer benutzerdefinierten Aktion (z. B. Typ 51) früh in der Installation festlegen können und das wird tatsächlich den Namen in der Benutzeroberfläche ändern, aber es wird nicht den Namen des installierten Produkts ändern - es wird bleiben das gleiche wie der ursprüngliche Wert. Wenn Sie beispielsweise installierte Produkte auflisten, wird der ursprüngliche Name zurückgegeben.
Der einzige gute Weg, dies zu tun ist, den ProductName in der MSI-Datei zu ändern, bevor Sie es starten. Sie hätten ein Startprogramm, das die MSI-Datei ändert und dann installiert. Die MSI-Datei ist eine Datenbank, die in der Eigenschaftstabelle geändert werden kann, um den Wert von ProductName zu ändern. In diesem Beispiel werden Sie die allgemeine Idee geben:
How do I add/update a property inside an MSI from the command-line?
aber im Grunde öffnen Sie das Öffnen der Datenbank (MsiOpenDatabase oder gleichwertig) dann MsiOpenView mit einem SQL wie:
„UPDATE Property SET Property.Value = 'Ihre Variable' WHERE Property.Property = 'CurrentProductName' "
Dann MsiViewExecute und schließen Sie Handies etc. Details hängen von Ihrer bevorzugten Programmiersprache Umgebung.
Dies ist keine ideale Lösung, denn wenn Ihre MSI-Datei digital signiert ist, haben Sie sie manipuliert und es ist nicht mehr korrekt.
Eine andere Möglichkeit besteht darin, eine Transformationsdatei basierend auf dem Ändern einer Kopie der MSI-Datei zu generieren. Wenn Sie eine Kopie der MSI-Datei erstellen und dann wie oben beschrieben die Änderung von ProductName vornehmen, können Sie einen MsiDatabaseGenerateTransform() - Aufruf ausführen, der eine Transformationsdatei, eine MST-Datei, den Unterschied zwischen den beiden MSI-Dateien generiert. Anschließend installieren Sie die ursprüngliche unveränderte MSI-Datei mit einer Befehlszeile, die TRANSFORMS = [die .mst-Datei] enthält, die den ProductName aktualisiert und die Installation startet.
Dies ist nicht sehr einfach, da Windows Installer-Produkte keine dynamischen Produktnamen aufweisen. Vielleicht war dies historisch und vor Windows Installer-Setups praktischer, aber nicht in MSI-Setups.
Danke für die Hilfe @PhilDW! :-) Ich werde die relevanten Schritte anhand Ihrer Antwort untersuchen ... –