Jump to content

MSI-Paketerstellung - Toolset


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

 

 

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...