Wir entwickeln ein Produkt, das von unseren Kunden an ihre Kunden vertrieben wird. Wir müssen dem Administrator des Client-Unternehmens erlauben, Konfigurationsänderungen am Installationsprogramm vorzunehmen, bevor er sie an den Endbenutzer sendet. Konfigurationsänderungen bedeuten in diesem Fall, dass einige Registrierungseinträge auf dem Computer des Endbenutzers vorgenommen werden. Wie mache ich das?Konfiguration des Installationsprogramms vor der Verteilung
-1
A
Antwort
2
Bitte überprüfen Sie dies: http://ozgrant.com/2008/03/11/customising-your-wix-msi-with-transform-files/
Hier
- Entwicklungsteam schafft ein generisches Installationsprogramm.
- Die IT-Team erstellt dann verschiedene Transformationen (.mst-Dateien) mit Orca und
- Diese Installer mit bestimmten .mst zu anderen Satz von Kunden ausgeliefert wird.
HTH
2
Hier ist ein Beispielskript, das wir unseren Kunden auszusenden. Sie erstellen eine benutzerdefinierte Konfigurationsdatei, führen dieses Skript aus und enden mit einer MST und einem CAB, die den Standard überschreiben, der in der Basis-MSI enthalten ist.
Ursprünglich haben wir den Kunden nur Anweisungen zur Verwendung von Orca gegeben, aber das ermöglicht ihnen nur das Aktualisieren von Eigenschaften/Werten - wenn Sie eine Konfigurationsdatei ersetzen müssen, ist es für die meisten IT-Mitarbeiter etwas kompliziert, es sei denn, sie haben Zugriff zu WISE, InstallShield oder ähnlichem.
Option Explicit
Const MSI_SRC = "myapp.msi"
Const MSI_TEMP = "temp.msi"
Const MST_FILE = "custom.mst"
Const MY_CONFIG = "customsettings.reg"
Const CAB_FILE = "config.cab"
Dim filesys
Set filesys=CreateObject("Scripting.FileSystemObject")
If filesys.FileExists(MSI_SRC) Then
filesys.CopyFile MSI_SRC, MSI_TEMP
Else
MsgBox "Unable to find " & MSI_SRC & "exiting", 48, "Fatal Error"
Set filesys = Nothing
WScript.Quit
End If
If filesys.FileExists(MST_FILE) Then
filesys.DeleteFile(MST_FILE)
End If
Dim installer, database, database2, view
Set installer = CreateObject("WindowsInstaller.Installer")
Set database = installer.OpenDatabase (MSI_TEMP, 1)
Set database2 = installer.OpenDatabase (MSI_SRC, 1)
If filesys.FileExists(MY_CONFIG) Then
Dim objFile, size, result, seq, objCab
Set objCab = CreateObject("MakeCab.MakeCab.1")
objCab.CreateCab CAB_FILE, False, False, False
objCab.AddFile MY_CONFIG, filesys.GetFileName(MY_CONFIG)
objCab.CloseCab
Set objFile = filesys.GetFile(MY_CONFIG)
size = objFile.Size
Set view = database.OpenView ("SELECT LastSequence FROM Media WHERE DiskId = 1")
view.Execute
Set result = view.Fetch
seq = result.StringData(1) + 1 ' Sequence for new configuration file
Set view = database.OpenView ("INSERT INTO Media (DiskId, LastSequence, Cabinet) VALUES ('2', '" & seq & "', '" & CAB_FILE & "')")
view.Execute
Set view = database.OpenView ("UPDATE File SET FileSize = " & size & ", Sequence = " & seq & ", FileName = 'CUSTOM~2.REG|customsettings.reg' WHERE File = '" & LCase(MY_CONFIG) & "'")
view.Execute
End If
database.GenerateTransform database2, MST_FILE
database.CreateTransformSummaryInfo database2, MST_FILE, 0, 0
' Cleanup
Set database = Nothing
Set database2 = Nothing
Set installer = Nothing
Set view = Nothing
filesys.DeleteFile(MSI_TEMP)
Set filesys = Nothing
Verwandte Themen
- 1. Jmeter Verteilung Konfiguration Konfiguration
- 2. Knotenmodul vor der Verteilung bündeln
- 3. NSIS - Wiederherstellung der Exe-Datei des Installationsprogramms
- 4. Verwenden des aktualisierten NSIS-Pfads innerhalb desselben Installationsprogramms
- 5. Wie Dateien optional in MainSection des NSIS-Installationsprogramms enthalten sind
- 6. Windows CE-Symbol bei Verwendung des CAB-Installationsprogramms verloren
- 7. Formatieren des Datums in der Logstash-Konfiguration
- 8. Konfiguration des Empfängers
- 9. Ändern meines NSIS-Installationsprogramms Anwendungsversion
- 10. PowerShell Versionsüberprüfung vor der Ausführung des Skripts
- 11. Erneute Eingabe des Passworts vor der Transaktion
- 12. Code vor der Aktion des Controllers ausführen
- 13. Verteilung der php's random_int() Funktion
- 14. Module Architektur/Verteilung
- 15. Ausführen eines Installationsprogramms unter Vista ohne Deaktivieren der Benutzerkontensteuerung
- 16. Wie wird der Extraktionsordner eines .msi-Installationsprogramms geändert?
- 17. Erhalt der Verteilung der Ergebnisse von LCIA
- 18. Verbesserung der Verteilung der Hash-Funktion Werte
- 19. Verteilung der Tabelle in der Zeit
- 20. Randomly in dynamischer Arrays der Verteilung von
- 21. Spring Boot JPA-Basiskonfiguration Vorrang vor App-Konfiguration
- 22. Mischung der Gaußschen Verteilung in C++
- 23. Maven-Plugin zur Verteilung der Unit-Testausführung
- 24. Wie überprüft man vor der Verwendung der Elemente des Arrays?
- 25. Einstellung der IIS-Konfiguration über appcmd.exe zum Laden des Benutzerprofils
- 26. Wie baue ich CMake ExternalProject während der Konfiguration des Hauptfensters?
- 27. Verwenden des Datenquellen-Konfigurationsassistenten oder manuelle Konfiguration der Datenquelle
- 28. Definieren des Projektnamens innerhalb der Docker-Compose-Konfiguration
- 29. In-house-Verteilung - ios sdk
- 30. ASP.NET Web App Verteilung
Hallo Sascha: Die Skriptlösung, die Sie gepostet haben, ist genau das, was ich gesucht habe. Ich habe Ihr Skript ohne Fehler ausgeführt und das Änderungsdatum auf der MSI aktualisiert. Ich habe versucht, zwei verschiedene Dateien zu modifizieren. 1) logo2.gif Als ich das Installationsprogramm ausgeführt habe, sind Fehler aufgetreten: "Das Installationsprogramm hat einen unerwarteten Fehler bei der Installation dieses Pakets festgestellt. Dies könnte auf ein Problem mit diesem Paket hinweisen. Der Fehlercode lautet 2755." Dann "Zurück vom Server. Rückgabewert: 110." Dann habe ich versucht und ASCII-Konfigurationsdatei. Danach konnte ich ohne Fehler installieren ... aber die Datei, die installiert wurde, war nicht die aktualisierte :( – blak3r