Vorbei REIN auf eine MSI-Datei
-
20-09-2019 - |
Frage
Ich bin mit VisualStudio2005 und vdproj eine einfache MSI-Datei zu erstellen. Ich muss in der REIN Eigenschaft passieren, wenn ich es starten.
Ich weiß, das kann über die Kommandozeile durchgeführt werden, etwa so:
msiexec.exe /i foo.msi REINSTALLMODE=amus
Wenn jedoch ein Benutzer wählt direkt die msi klicken (startet den Assistenten), wird die Eigenschaft nicht bestanden. Ist es möglich, dies über den VS und vdproj zu tun?
Einige Optionen Ich habe untersucht:
- Wenn ich das MSI über VS bauen, es produziert auch eine setup.exe. Gibt es eine Möglichkeit, die REIN Eigenschaft durch diese vielleicht passieren?
- Ich installierte Orca, die mir die Eigenschaftstabelle des MSI zum Anzeigen / Bearbeiten ermöglicht. Ich könnte es auf diese Weise hinzufügen, aber dann müsste ich es mir ein MSI-Build zu tun jedes Mal hinzuzufügen.
Vielen Dank für jede Beratung.
Lösung
Leider kann ich nicht einen Weg finden, andere MSI-Eigenschaften setzen rechts in VStudio.
Dennoch eine Methode, die funktionieren soll, ist dies:
Andere Tipps
fand ich eine automatisierte Art und Weise, dies zu tun.
Erstellen Sie ein Skript mit dem Namen add_reinstall_prop.vbs (Beispiel) mit dem folowing:
set objArgs = WScript.Arguments
set o_installer = CreateObject("WindowsInstaller.Installer")
set o_database = o_Installer.OpenDatabase(objArgs(0), 1)
s_SQL = "INSERT INTO Property (Property, Value) Values( 'REINSTALLMODE', 'amus')"
set o_MSIView = o_DataBase.OpenView( s_SQL)
o_MSIView.Execute
o_DataBase.Commit
Fügen Sie ein Postbuildereignis zu Ihrem Setup-Projekt das Skript mit dem folgenden Aufruf:
add_reinstall_prop.vbs $(BuiltOuputPath)
Dies wird den gewünschten Eintrag zu dem integrierten MSI automatisch hinzuzufügen. Sie können es dann mit Orca überprüfen Sie den Eintrag zu sehen, jetzt automatisch nach dem Bauprozess hinzugefügt wird.