The SuezCollection
TheSuezCollectionLogo

WIX

Allgemein

Via Patch-Datei hat man auch Zugriff Extra-Elemente des WiX-Toolset.

Das Projekt

Im folgenden wird ein Software-Paket erzeugt, das sich sowohl nach der Installation, als auch bei der Deinstallation beim Benutzer meldet.

Aufbau der Patch-Datei

Die Patch-Datei sieht wie folgt aus:
		
				

1:<CPackWiXPatch> 2: <CPackWiXFragment Id="#PRODUCT"> 3: <CustomAction Id="ActionAfterDeinstallation" ExeCommand="Nach der Deinstallation" FileKey ="CM_FP_bin.tm.exe"/> 4: <CustomAction Id="ActionAfterInstallation" ExeCommand="Nach der Installation" FileKey="CM_FP_bin.tm.exe"/> 5: <InstallExecuteSequence> 6: <!-- Ausführung bei Deinstallation --> 7: <Custom Action="ActionAfterDeinstallation" After="InstallFiles">Installed</Custom> 8: <!-- Ausführung wenn die Installation beendet ist --> 9: <Custom Action="ActionAfterInstallation" After="InstallFinalize">NOT Installed</Custom> 10: </InstallExecuteSequence> 11: </CPackWiXFragmen> 12:</CPackWiXPatch>

Der Aufbau der Patch-Datei ist im Prinzip ganz einfach. In den Zeilen 3 und 4 wird festgelegt was überhaupt passieren soll. Zeile 3 sagt das, dass Programm tm mit dem Parameter "Nach der Deinstallation" aufgerufen werden soll und Zeile 4 sagt das selbe nur das hier der Parameter "Nach der Installation" heißt. Wie den WIX-Namen des Programms ermittelt, wird hier gezeigt.

Die Zeilen 7 und 9 legen fest wann das Programm aufgerufen werden soll (Nach der Deinstallation bzw. nach der Installation) <InstallExecuteSequence> gibt Einblicke was man mit dem Tag noch so alles anfangen kann.

Aufbau der CMakeLists-Datei

		
				

1: CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0) 2: IF (POLICY CMP0048) 3: CMAKE_POLICY(SET CMP0048 NEW) # Wg. VERSION im project Befehl 4: ENDIF (POLICY CMP0048) 5: 6: PROJECT(CustomAction VERSION 1.2.3) 7: 8: ADD_EXECUTABLE(tm tm.cc) 9: INSTALL(TARGETS tm DESTINATION bin) 10: 11: # Standard -------------------------------------------------------- 12: # GUID mit MSVC erstellen 13: SET(CPACK_WIX_UPGRADE_GUID "BFDE99AE-2FAD-4BD7-84B0-3BD11EEDCA21") 14: # Sprache 15: SET(CPACK_WIX_CULTURES "de-DE") 16: # WIX Generator 17: SET(CPACK_GENERATOR WIX) 18: # Standard Ende --------------------------------------------------- 19: 20: # Über ExeCommand im patch-File können Parameter an das Programm 21: # übergeben werden. 22: set(CPACK_WIX_PATCH_FILE "${CMAKE_CURRENT_SOURCE_DIR}/patch.xml") 23: 24: INCLUDE(CPack)

Der Aufbau der CMakeLists-Datei ist genauso wie PatchEnv-Beispiel

Ergebnis

Nach der Installation ist folgender Eintrag in der Enviroment-Tabelle von Windows:
Nach der Installation
Bild 1: Nach dem Ende des Installationsvorgangs: Enviroment
Nach dem Ende des Deinstallationsvorgangs
Bild 2: Nach dem Ende des Deinstallationsvorgangs

Hinweis

Bei der Deinstallation werden die Einträge wieder entfernt.