Hallo Community,
Ich hoffe Ihr könnt mir helfen. Ich bin langsam schon am verzweifeln. Ich habe ein Projekt bei dem neben meiner Software (als .msi) noch TortoiseSVN inkl. Command-Line funktionalität Installiert werden soll.
WiX v3:
In meinem Product.wxs verweiße ich auf die Msi wie folgt:
<Component Id="TortoiseSVN_1_9_7_27907_x64_svn_1_9_7.msi" Guid="*">
<File Id="TortoiseSVN_1_9_7_27907_x64_svn_1_9_7.msi" Name="TortoiseSVN_1_9_7_27907_x64_svn_1_9_7.msi" Source="$(var.test_TargetDir)TortoiseSvn\TortoiseSVN_1_9_7_27907_x64_svn_1_9_7.msi"/>
</Component>
Um diese .msi mit Argumenten ausführen zu können, habe ich eine kleine Batch geschrieben.
msiexec.exe %msiopts% /passive /norestart ADDLOCAL=ALL /i %cd%\TortoiseSVN_1_9_7_27907_x64_svn_1_9_7.msi
desweiteren gibt es in der Product.wxs eine Costum Action sowie eine InstallExecuteSequence:
<!--Run after Installation-->
<CustomAction Id="InstallSvn"
Execute="immediate"
Impersonate="no"
Return="asyncNoWait"
Directory="INSTALLFOLDER"
ExeCommand="[INSTALLFOLDER]InstallSvn.bat">
</CustomAction>
<InstallExecuteSequence>
<Custom Action="InstallSvn" After="InstallFinalize"></Custom>
<!--Reboot after Installation-->
<ScheduleReboot After="InstallFinalize"/>
</InstallExecuteSequence>
wird die .Msi nun ausgeführt, wird meine Software wie erwartet installiert. Alsbald diese Installation finalisiert ist, wird die Batch selbstständig ausgeführt. Leider tritt dort folgender Sachverhalt auf (siehe Anhang SvnInstaller.PNG)
wird die batch manuell ausgeführt, wird die Installation mit entsprechenden Argumenten wie gewollt ausgeführt. Habt Ihr Ideen/Vorschläge die diesen Sachverhalten erklären und ggf. Abhilfe?
Bei Fragen gerne melden 😃
Beste Grüße
Habt Ihr Ideen/Vorschläge die diesen Sachverhalten erklären
Deine Parameter werden nicht erkennt oder sind ungültig. Wenn Du sagst, dass das manuell funktioniert, dann scheint es offenbar so zu sein, dass Deine Parameter anders angegeben werden müssen.
Google ich kurz https://www.google.com/search?q=wix+execute+msi+with+parameters sieht man dutzende Samples, die das MSI direkt in der XML-Datei hinterlegen und dabei MsiProperty-Elemente verwenden.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
vielen Dank für die Meldung.
Diese Samples beziehen sich aber alle auf selbsterstelle installer, denen man eigene Paramter übergibt. Zumal diese Parameter dann wieder manuell der .Msi übergeben werden müssen.
Die TortoiseSVNxxx.msi ist von einem Drittanbieter mit bereits definierten Argumenten.
Nochmals das eigentliche Vorgehen der Installation:
User nimmt meine Setup.msi (meine Software + TortoiseSVN.msi)
Installiert meine Software
nachdem meine Software installiert wurde, soll als silent Install TortoiseSVN.msi mit CLI installiert werden.
[Edit 1] Das Beispiel ist aus dem Bootsrtapper Tool von Wix und nicht aus dem Installer Tool von Wix. Dort sind wieder andere Eigenschaften möglich als beim Installer Tool
Ist mir schon klar. Ich geh jedoch weiter davon aus, dass Deine Batch so in der Wix ungültig ist.
zB weil %msiopts% oder %cd% oder was anderes zwar in Deiner Shell lokal existiert, aber nicht über Wix. Dadurch verschiebt sich der Parameterscope und der Befehl wird als ungültig erkannt → das Prompt kommt.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Danke für den Input 😃
Ich finde diesen Workaround mit der batch immer noch nicht toll, aber leider bekomme ich auch nicht mehr Zeit für diesen Mist.
that´s the way to go:
msiexec /package TortoiseSVN_1_9_7_27907_x64_svn_1_9_7.msi /passive /norestart ADDLOCAL=ALL INSTALLDIR="your\install\path"