Wix: es geht auch cooler…

Gestern erst über Wix berichtet um MSI-Pakete zu bauen, habe ich mich heute näher mit dem Thema beschäftigt.

Auf http://www.csscript.net/WixSharp.html habe ich WixSharp gefunden.
WixSharp ist so etwas wie ein Toolset, welches aus *.cs Files, welche eine einfacherere Syntax haben als die *.wsx Dateien ebenfalls MSI-Pakete bauen.
Das tolle daran ist, das mit der Zip Datei gleich haufenweise beispiele ausgeliefert werden, mit denen man schon viel rumexperimentieren kann 🙂

Hier ein Mini-Howto zur Benutzung:
Auf der Homepage gibt es eine Zip Datei zum herunterladen.
Diese habe ich mir in D:\Programme\WixSharp\ entpackt.

Ein Beispiel-Projekt habe ich unter http://frickelblog.de/downloads/wixsharp.zip abgelegt.
Dieses habe ich in D:\WixTest\ entpackt.

Das von mit verwendete Setup.cs File sieht dann so aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//css_ref D:\Programme\WixSharp\WixSharp.dll;
//css_ref System.Core.dll;
using System;
using WixSharp;
 
class Script
{
    static public void Main(string[] args)
    {
        Project project =
            new Project("TeaTimer",
                // Installation der Dateien
				new Dir(@"%ProgramFiles%\STools\Teatimer",
					// Normale Datei einbinden
					new File(@"Files\Doc\Dokumentation.txt"),
					new File(@"Files\Bin\teatimer.ini"),
 
					// Datei mit Shortcut und Desktop-Verknüpfung einbinden
					new File(@"Files\Bin\teatimer.exe",
						new FileShortcut("TeaTimer", "INSTALLDIR"), 					// Verknüpfung im Installationsverzeichnis
						new FileShortcut("TeaTimer", @"%Desktop%"), 					// Verknüpfung auf dem Desktop
						new FileShortcut("TeaTimer", @"%ProgramMenu%\STools\Teatimer") 	// Verknüpfung im Startmenü
					),
 
					// Verknüpfung zum uninstaller hinzufügen
					new ExeFileShortcut("Uninstall TeaTimer", "[System64Folder]msiexec.exe", "/x [ProductCode]")
					),
 
				// Hinzufügen eines Stratmenü-Eintrages
				new Dir(@"%ProgramMenu%\STools\Teatimer",
					new ExeFileShortcut("Uninstall TeaTimer", "[System64Folder]msiexec.exe", "/x [ProductCode]"))
					);
 
        project.GUID = new Guid("6f330b47-2577-43ad-9095-1861ba25889b");
 
        Compiler.BuildMsi(project);
    }
}

Anhand der Kommentare sollte nun ersichtlich sein, was das Script macht.
Wichtig ist, das der Pfad zur Wix-DLL angepasst wird (bei mir eben D:\Programme\…).
In meiner Zip-Datei liegt auch eine Build.bat.
Mit dieser kann man das erstellen der MSI-Datei anstossen.

Einfach mal ausprobieren – notfalls die fade in der bat ändern.

Viel Spaß damit 🙂

leave your comment

*

Unterstütze den Frickelblog!