DuDo 0 Geschrieben 14. August 2019 Melden Teilen Geschrieben 14. August 2019 Hallo Zusammen, ich arbeite derzeit an einer Anwendung, die mir über WixToolset + CommandLine ein vordefiniertes Setup-Paket im MSI-Format erstellt. Am Ende soll ein MSI-Paket erstellt werden, welches beim Ausführen folgendes macht: 1.) 2 Dateien (1x MSI-Anwendung & 1x NEW.config-Datei) sollen in das vordefinierte Zielverzeichnis kopiert werden 2.) Nach dem Kopieren, die kopierte MSI-Anwendung installieren, 3.) Nach der Installation des MSI-Pakets, am besten mittels Batchfile (.cmd) oder PowerShell-Skript (.ps1) die durch die MSI-Anwendung installiert/erstellte "ALT".config-Datei - durch die in Schritt 1.) kopierte "NEW.config" austauscht. Ich habe die Aufgabenstellung seither über unzählige Versuche vergeblich versucht zu lösen, in dem ich über das MSI-Paket alles kopiere und über eine Konsolen-EXE ein Batchfile oder PowerShell-Skript aufrufe, die dann das kopierte MSI installieren und anschließend die config tauscht. Die MSI-Anwendung wird aber leider nie installiert. Könnt ihr mir helfen oder ggf. beschreiben, welche Komponenten in der Product.wxs-Datei erforderlich sind? Für eure Unterstützung vielen Dank! Viele Grüße DuDo Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 14. August 2019 Melden Teilen Geschrieben 14. August 2019 Du solltest vermutlich nicht nur beschreiben, was Du machen möchtest, sondern auch, was Du bisher gemacht hast und den dazugehörigen Code mitliefern, bitte. Ein paar Informationen über die "Umgebung" wären vermutlich auch nicht schlecht. MSI-Installation kann man normalerweise sehr gut mittels MST-Dateien an die eigenene Bedürfnisse anpassen. Zitieren Link zu diesem Kommentar
DuDo 0 Geschrieben 14. August 2019 Autor Melden Teilen Geschrieben 14. August 2019 Ich habe diese "Product.wxs" "zusammen geschustert": <?xml version="1.0" encoding="UTF-8"?> <*** xmlns="http://schemas.microsoft.com/***/2006/wi"> <Product Id="*" Version="1.0" Language="1033" Name="SetupPackage" Manufacturer="SampleGmbH"> <Package InstallerVersion="300" Compressed="yes" /> <Media Id="1" Cabinet="SetupPackage.cab" EmbedCab="yes" /> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFiles64Folder"> <Directory Id="MyProgramDir" Name="SetupPackage"> <Directory Id="MyFirstSubDir" Name="SubFolder1"> <Directory Id="INSTALLDIR" Name="SubFolder2"> <Directory Id="MyThirdSubDir" Name="SubFolder3"/> </Directory> </Directory> </Directory> </Directory> </Directory> <DirectoryRef Id="MyThirdSubDir"> <Component Id="NEW.config" Guid="*" Win64="yes" > <File Id="NEW.config" Source="SubFolder3\NEW.config" KeyPath="yes" Checksum="yes"/> </Component> <Component Id="skript.ps1" Guid="*" Win64="yes" > <File Id="skript.ps1" Source="SubFolder3\skript.ps1" KeyPath="yes" Checksum="yes"/> </Component> <Component Id="Anwendung.msi" Guid="*" Win64="yes" > <File Id="Anwendung.msi" Source="SubFolder3\Anwendung.msi" KeyPath="yes" Checksum="yes"/> </Component> </DirectoryRef> <Feature Id="MainApplication" Title="Main Application" Level="1"> <ComponentRef Id="Anwendung.msi" /> </Feature> <Binary Id="call_skript.exe" SourceFile="SubFolder3\call_skript.exe"/> <CustomAction Id="call_skript.exe" BinaryKey="call_skript.exe" ExeCommand="/s" Impersonate="no" Execute="deferred" Return="check" /> <InstallExecuteSequence> <Custom Action="call_skript.exe" After="InstallFiles">Not Installed</Custom> </InstallExecuteSequence> </Product> </***> Die "call_skript.exe" habe ich über Visual Studio als Konsolen-App C# erstellt, die das PowerShell-Skript ausführen soll. Das PowerShell-Skript führt dann folgende Befehle aus: msiexec /i "Anwendung.msi" und tauscht anschließend die config aus. Ich habe in anderen Beiträgen gelesen, dass ich einen "Bootstrapper" verwenden muss, um eine MSI aus einer anderen MSI heraus zu installieren. Es fällt mir aber ehrlich gesagt schwer, das ganze Konstrukt zu verstehen. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 14. August 2019 Melden Teilen Geschrieben 14. August 2019 Hmmm ... sowas Ähnliches hatte ich befürchtet ... ... von WixToolset hab ich natürlich keine Ahnung und ich bin auch weit davon entfernt, mich einen MSI-Expreten zu nennen, aber was ich mich frage: Warum willst Du denn überhaupt eine MSI-Datei in eine MSI-Datei packen? Was ist die "Umgebung" und was willst Du erreichen? Wenn Du in einer Windows-Domäne unterwegs bist, gibt es üblicherweise verschiedene Möglichkeiten, eine bestimmte Software mit bestimmten Eigenschaften zu installieren. Zitieren Link zu diesem Kommentar
magheinz 110 Geschrieben 14. August 2019 Melden Teilen Geschrieben 14. August 2019 Habt ihr eine softwareverteung wie opsi am laufen? Dann könnten man um die Installation drumherum Scripten. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.