Looking for wix Keywords? Try Ask4Keywords

wixErste Schritte mit wix


Bemerkungen

Was ist WiX?

Mit dem WiX-Toolset können Entwickler Installationsprogramme für Windows Installer, das Windows-Installationsmodul, erstellen. Es ist Open Source und Teil der .NET Foundation .

Der Kern von WiX besteht aus einer Reihe von Build-Tools, die Windows Installer-Pakete mit den gleichen Build-Konzepten wie das restliche Produkt erstellen: Der Quellcode wird kompiliert und dann zum Erstellen ausführbarer Dateien verknüpft. In diesem Fall EXE-Installationspakete, MSI-Installationspakete, MSM-Mergemodule und MSP-Patches. Die WiX-Befehlszeilen-Build-Tools funktionieren mit jedem automatisierten Build-System. MSBuild wird auch über die Befehlszeile, Visual Studio und Team Build unterstützt.

WiX enthält mehrere Erweiterungen, die über die von Windows Installer hinausgehende Funktionalität bieten. Beispielsweise kann WiX IIS-Websites installieren, SQL Server-Datenbanken erstellen und Ausnahmen unter anderem in der Windows-Firewall registrieren.

Mit Burn, dem WiX-Bootstrapper, können Sie Setup-Bundles erstellen, die Voraussetzungen wie .NET Framework und andere Laufzeiten zusammen mit Ihrem eigenen Produkt installieren. Mit Burn können Sie Pakete herunterladen oder in einer einzigen herunterladbaren EXE-Datei zusammenfassen.

Das WiX SDK enthält verwaltete und native Bibliotheken, die das Schreiben von Code erleichtern, der mit Windows Installer funktioniert, einschließlich benutzerdefinierter Aktionen in C # und C ++.

Wie funktioniert WiX?

Der WiX-Quellcode wird im XML-Format mit der Erweiterung .wxs geschrieben. Die WiX-Tools folgen dem traditionellen Kompilier- und Linkmodell, das zum Erstellen von ausführbaren Dateien aus Quellcode verwendet wird.

Zum Erstellungszeitpunkt werden die WiX-Quelldateien anhand des WiX-Kernschemas überprüft und anschließend von einem Präprozessor, Compiler und Linker verarbeitet, um das Endergebnis zu erstellen. Es gibt eine Reihe von WiX-Tools, mit denen verschiedene Ausgabetypen erstellt werden können.

WiX-Systemanforderungen

WiX unterstützt sowohl .NET 3.5 als auch 4.0 und höher. Die Unterstützung von WiX MSBuild erfordert .NET 3.5, das unter Windows 8 und Windows Server 2012 und höher nicht standardmäßig installiert ist.

In der nächsten Version von WiX (v3.11) ist .NET 4.0 erforderlich. Das Erstellen mit .NET 3.5 wird nicht mehr unterstützt.

Versionen

Ausführung Erscheinungsdaten
3.11 2017-05-05
3.10.3 2016-07-04
3,9 R2 2015-01-21
3.8 2013-11-28
3.7 2012-12-24
3.6 2012-09-03
3,5 2011-01-19
3,0 2009-06-19
2,0 2007-10-05

Installation oder Setup

Laden Sie das WiX Toolset von wixtoolset.org herunter und installieren Sie es .

Das Installationsprogramm für das WiX-Toolset bietet auch die Integration mit Visual Studio . Nach der Installation sollten Sie in der Lage sein, WiX-spezifische Projekte zu erstellen.

Warnungen

Administratorrechte werden benötigt.

Einige Versionen von WiX sind nur mit bestimmten Versionen von Visual Studio kompatibel:

  • V3.11 und später enthält nicht die Erweiterungen für Visual Studio. Sie müssen die Erweiterungen für Ihre Versionen von Visual Studio herunterladen
  • V3.10 und niedriger funktioniert nicht mit Visual Studio 2017, enthält jedoch die Projektvorlagen für Visual Studio

Einzelheiten

Der Installer wurde mit WiX selbst erstellt und bietet ein ungewöhnliches Fenster: WiX-Installationsfenster

Es besteht aus 6 Teilen:

  • WiX Toolset: Zeigt die vom Installationsprogramm installierte Version an und startet die Wix Toolset-Website mit einem Klick

  • Lizenz: Lizenz anzeigen

  • Installieren: Starten Sie die Installation

  • Up to Date: Prüfen Sie, ob eine neue Version verfügbar ist

  • News: Starten Sie die WiX-News

  • Beenden: Schließen Sie das Installationsprogramm

Einfaches Setup

In diesem Beispiel wird davon ausgegangen, dass bereits eine Lösung mit einer Anwendung namens MyApp vorhanden ist.

  • Fügen Sie der Lösung ein neues Projekt hinzu: Setup-Projekt hinzufügen
  • MyApp im Setup-Projekt auf der Registerkarte Projekte eine neue Referenz zu MyApp : MyApp-Referenz hinzufügen
  • Product.wxs Datei Product.wxs das Manufacturer Attribut des Product Knotens mit HelloWorld :
<Product Id="*" Name="MyApp.Setup" Language="1033" Version="1.0.0.0" Manufacturer="HelloWorld" UpgradeCode="52f2c69b-5901-4d18-bb96-8c1c86cd1a3e">
 

Umschließen Sie den letzten Knoten im Fragment , der die Directory , mit einem neuen Directory :

<Directory Id="ManufacturerFolder" Name="!(bind.property.Manufacturer)">
    <Directory Id="INSTALLFOLDER" Name="MyApp.Setup" />
</Directory>
 

Kommentieren Sie die kommentierten Knoten im ComponentGroup Knoten, entfernen Sie das TODO und fügen Sie der Component einen File Knoten hinzu:

<File Source="$(var.MyApplication.TargetPath)" />
 

Das Source-Attribut gibt an, wo die Datei zum Packen während des Builds gefunden werden soll. Anstatt Hardwarewerte für diese Attribute in unseren Quellcode einzugeben, verwenden wir die WiX-Präprozessor-Variablen, die an den WiX-Compiler übergeben werden.

  • Erstellen Sie das WiX-Projekt.

Das ist es! Jetzt haben Sie ein funktionierendes Installationsprogramm, das die Anwendung installiert und deinstalliert.


Vollständige Product.wxs Datei:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="*" Name="MyApp.Setup" Language="1033" Version="1.0.0.0" Manufacturer="HelloWorld" UpgradeCode="52f2c69b-5901-4d18-bb96-8c1c86cd1a3e">
        <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

        <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
        <MediaTemplate />

        <Feature Id="ProductFeature" Title="MyApp.Setup" Level="1">
            <ComponentGroupRef Id="ProductComponents" />
        </Feature>
    </Product>

    <Fragment>
        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="ProgramFilesFolder">
                <Directory Id="ManufacturerFolder" Name="!(bind.property.Manufacturer)">
                    <Directory Id="INSTALLFOLDER" Name="MyApp.Setup" />
                </Directory>
            </Directory>
        </Directory>
    </Fragment>

    <Fragment>
        <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
            <Component Id="ProductComponent">
                <File Source="$(var.MyApp.TargetPath)" />
            </Component>
        </ComponentGroup>
    </Fragment>
</Wix>