Laden...

Wix v3 Msi Installer soll via Batch TortoiseSVN via CLI installieren

Erstellt von Nifrediel vor einem Jahr Letzter Beitrag vor einem Jahr 522 Views
N
Nifrediel Themenstarter:in
3 Beiträge seit 2023
vor einem Jahr
Wix v3 Msi Installer soll via Batch TortoiseSVN via CLI installieren

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

16.842 Beiträge seit 2008
vor einem Jahr

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.

https://stackoverflow.com/questions/14762617/wix-bootstrapper-how-do-i-set-burn-variables-from-the-command-line

N
Nifrediel Themenstarter:in
3 Beiträge seit 2023
vor einem Jahr

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

16.842 Beiträge seit 2008
vor einem Jahr

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.

N
Nifrediel Themenstarter:in
3 Beiträge seit 2023
vor einem Jahr

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"