<?include Config.wxi?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
  <Product Id="*" Name="$(var.ProductName)" Language="1031" Codepage="1252" Version="$(var.ProductVersion)" Manufacturer="$(var.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
    <Package
      Id="*"
      Keywords="Installer"
      Description="$(var.Description)"
      Comments="$(var.Comments)"
      Manufacturer="$(var.Manufacturer)"
      InstallerVersion="100"
      Languages="1031"
      Compressed="yes"
      SummaryCodepage="1252"
      InstallScope="perMachine"
    />

    <Media Id='1' Cabinet='$(var.ProgramName).cab' EmbedCab='yes' DiskPrompt='$(var.ProgramName)'  />
    <Property Id='DiskPrompt' Value="$(var.ProgramName) Install" />

    <MajorUpgrade
      AllowDowngrades="no"
      AllowSameVersionUpgrades="yes"
      DowngradeErrorMessage="Eine neuere Version von [ProductName] ist bereits installiert. Das Setup wird beendet."
    />

    <Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
    <Upgrade Id="$(var.UpgradeCode)">
      <UpgradeVersion
        Minimum="1.0.0.0" Maximum="99.0.0.0"
        Property="PREVIOUSVERSIONSINSTALLED"
        IncludeMinimum="yes" IncludeMaximum="no" />
    </Upgrade>

    <!-- Legt das Icon fest -->
    <Icon Id="AppIcon.exe" SourceFile="$(var.ProgramName).exe" />
    <!-- Zeige Icon in Systemsteuerung > Programme entfernen -->
    <Property Id="ARPPRODUCTICON" Value="AppIcon" />

    <!-- Legt die Verzeichnisstruktur fest -->
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="DDDIR" Name="$(var.Manufacturer)">
          <Directory Id="INSTALLDIR" Name="$(var.ProductName)"/>
        </Directory>
      </Directory>

      <Directory Id="ProgramMenuFolder">
        <Directory Id="ApplicationProgramsFolder" Name="$(var.ProductName)"/>
      </Directory>

      <Directory Id="DesktopFolder" />
    </Directory>

    <!-- VerknÃ¼pfung fÃ¼r StartmenÃ¼ -->
    <DirectoryRef Id="ApplicationProgramsFolder">
      <Component Id="ApplicationShortcut_StartMenu" Guid="8e116ea7-41c4-4e83-af7c-997f8cb7432d">
        <Shortcut Id="ApplicationStartMenuShortcut_StartMenu"
             Name="$(var.ProductName)"
             Target="[INSTALLDIR]WIDIG.exe"
             WorkingDirectory="INSTALLDIR"/>
        <RemoveFolder Id="ApplicationProgramsFolder_StartMenu" On="uninstall"/>
        <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
      </Component>
    </DirectoryRef>

    <!-- VerknÃ¼pfung fÃ¼r Desktop -->
    <DirectoryRef Id="DesktopFolder">
      <Component Id="ApplicationShortcut_Desktop" Guid="9100d46d-1576-484a-b467-bc10ffdb21bb">
        <Shortcut Id="ApplicationStartMenuShortcut_Desktop"
             Name="$(var.ProductName)"
             Target="[INSTALLDIR]WIDIG.exe"
             WorkingDirectory="INSTALLDIR"/>
        <RemoveFolder Id="ApplicationProgramsFolder_Desktop" On="uninstall"/>
        <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
      </Component>
    </DirectoryRef>

    <DirectoryRef Id="INSTALLDIR">
      <Component Id="MainApplicationExe" Guid="195612c2-f0c0-472a-a83e-935bf13ce295">
        <File Id="MainApplicationExe" Name="WIDIG.exe" KeyPath="no" Checksum="yes">
          <Shortcut Id="DesktopShortcut" Directory="DesktopFolder" Name="$(var.ProductName)" WorkingDirectory="INSTALLDIR" Icon="AppIcon.exe" IconIndex="0" Advertise="yes"  />
          <Shortcut Id="StartMenuShortcut" Directory="ProgramMenuFolder" Name="$(var.ProductName)" WorkingDirectory="INSTALLDIR" Icon="AppIcon.exe" IconIndex="0" Advertise="yes" />
        </File>
        <File Id="MainApplicationExeConfig" Name="WIDIG.exe.config" KeyPath="no" Checksum="yes" />

        <File Id="ConsoleApplicationExe" Name="$(var.ProgramName).exe" KeyPath="yes" Checksum="yes"></File>
        <File Id="ConsoleApplicationExeConfig" Name="$(var.ProgramName).exe.config" KeyPath="no" Checksum="yes"></File>  
      </Component>

      <Component Id="DevExpressLibs" Guid="a17fa11f-d78f-464e-930e-5fad7927ce4e">
        <File Id="DevExpress.Data.v19.2.dll" Name="DevExpress.Data.v19.2.dll" KeyPath="yes" Checksum="yes"/>
        <File Id="DevExpress.Pdf.v19.2.Core.dll" Name="DevExpress.Pdf.v19.2.Core.dll" KeyPath="no" Checksum="yes"/>
        <File Id="DevExpress.Printing.v19.2.Core.dll" Name="DevExpress.Printing.v19.2.Core.dll" KeyPath="no" Checksum="yes"/>
        <File Id="DevExpress.Sparkline.v19.2.Core.dll" Name="DevExpress.Sparkline.v19.2.Core.dll" KeyPath="no" Checksum="yes"/>
        <File Id="DevExpress.Utils.v19.2.dll" Name="DevExpress.Utils.v19.2.dll" KeyPath="no" Checksum="yes"/>
        <File Id="DevExpress.XtraBars.v19.2.dll" Name="DevExpress.XtraBars.v19.2.dll" KeyPath="no" Checksum="yes"/>
        <File Id="DevExpress.XtraEditors.v19.2.dll" Name="DevExpress.XtraEditors.v19.2.dll" KeyPath="no" Checksum="yes"/>
      </Component>

      <Component Id="DigitalDataLibs" Guid="940298ca-6934-4e7a-a45b-1246b23622a6">
        <File Id="DigitalData.Modules.Config.dll" Name="DigitalData.Modules.Config.dll" KeyPath="yes" Checksum="yes"/>
        <File Id="DigitalData.Modules.Filesystem.dll" Name="DigitalData.Modules.Filesystem.dll" KeyPath="no" Checksum="yes"/>
        <File Id="DigitalData.Modules.Language.dll" Name="DigitalData.Modules.Language.dll" KeyPath="no" Checksum="yes"/>
        <File Id="DigitalData.Modules.Logging.dll" Name="DigitalData.Modules.Logging.dll" KeyPath="no" Checksum="yes"/>
        <File Id="DigitalData.Modules.Windream.dll" Name="DigitalData.Modules.Windream.dll" KeyPath="no" Checksum="yes"/>
      </Component>

      <Component Id="MiscLibs" Guid="6a621556-dac9-48e2-b50c-624191d26845">
        <File Id="Interop.WINDREAMLib.dll" Name="Interop.WINDREAMLib.dll" KeyPath="yes" Checksum="yes"/>
        <File Id="NLog.dll" Name="NLog.dll" KeyPath="no" Checksum="yes"/>
        <File Id="protobufnet.dll" Name="protobuf-net.dll" KeyPath="no" Checksum="yes"/>
      </Component>

      <!-- FÃ¼r weitere Dateien hier Component Elemente anlegen!! -->
      <!--
        <Component Id="FirmaXYLib" Guid="PUT-GUID-HERE">
          <File Id="FirmaXYLib" Name="FirmaXYLib.dll" KeyPath="yes" Checksum="yes"/>
        </Component>
      -->

      <Component Id="RegistryKeys" Guid="aeebea13-8ad6-4f3d-ac4a-ecea4151dfb0">
        <RegistryKey Root="HKLM" Key="SOFTWARE">
          <RegistryKey Key="[Manufacturer]">
            <RegistryKey Key="[ProductName]" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes" Id="REGKEYINSTALLDIR">
              <RegistryValue Type="string" Value="[INSTALLDIR]" Name="Path" />
            </RegistryKey>
          </RegistryKey>
        </RegistryKey>

        <util:RemoveFolderEx Id="RemoveApplicationFolder" On="uninstall" Property="APPLICATIONFOLDER" />
      </Component>
    </DirectoryRef>

    <Feature Id="MainApplication" Title="Main Application" Level="1">
      <ComponentRef Id="MainApplicationExe" />
      <ComponentRef Id="RegistryKeys" />
      <ComponentRef Id="DevExpressLibs" />
      <ComponentRef Id="DigitalDataLibs" />
      <ComponentRef Id="MiscLibs" />
      <!-- Weitere Komponenten hier hinzufÃ¼gen! -->
    </Feature>

    <!-- 
      Diese Features kÃ¶nnen mit einem Parameter beim Aufruf des Installers deaktiviert werden
    -->
    <Feature Id="DesktopShortcut" Title="Desktop Shortcut">
      <Condition Level="0">DISABLE_DESKTOP_ICON</Condition>
      <ComponentRef Id="ApplicationShortcut_Desktop"/>
    </Feature>

    <Feature Id="StartmenuShortcut" Title="Startmenu Shortcut">
      <Condition Level="0">DISABLE_STARTMENU_ICON</Condition>
      <ComponentRef Id="ApplicationShortcut_StartMenu" />
    </Feature>

    <!-- Legt das Standard-Installationsverzeichnis fest-->
    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
    <Property Id="_BrowseProperty" Value="INSTALLDIR" />

    <!-- Konfiguriert die Reihenfolge der Installer-Dialoge -->
    <UI>
      <UIRef Id="WixUI_FeatureTree"/>
      <UIRef Id="WixUI_ErrorProgressText" />
      <Publish Dialog="WelcomeDlg"
            Control="Next"
            Event="NewDialog"
            Value="InstallDirDlg"
            Order="2">1</Publish>
      <Publish Dialog="InstallDirDlg"
            Control="Back"
            Event="NewDialog"
            Value="WelcomeDlg"
            Order="2">1</Publish>
      <Publish Dialog="InstallDirDlg"
            Control="Next"
            Event="NewDialog"
            Value="FeaturesDlg"
            Order="2">1</Publish>
      <Publish Dialog="InstallDirDlg"
            Control="ChangeFolder"
            Event="NewDialog"
            Value="BrowseDlg"
            Order="2">1</Publish>
      <Publish Dialog="FeaturesDlg"
              Control="Back"
              Event="NewDialog"
              Value="InstallDirDlg"
              Order="2">1</Publish>
    </UI>
  </Product>
</Wix>
