<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <?include "Variables.wxi" ?>
  <Product Id="*" Name="$(var.ProductName)" Language="$(var.ProductLanguage)" Version="$(var.ProductVersion)" Manufacturer="$(var.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
    <Package Compressed="yes" InstallScope="perMachine" InstallerVersion="200" />

    <MajorUpgrade DowngradeErrorMessage="$(var.DowngradeErrorMessage)" Schedule="afterInstallInitialize"/>

    <MediaTemplate CabinetTemplate="dnet-{0}.cab" CompressionLevel="high" />

    <Feature Id="MainFeature" Title="Main Feature" Level="1">
      <ComponentGroupRef Id="InstallFiles" />
      <ComponentGroupRef Id="AuthoredRegistryKeys"/>
    </Feature>
    <Feature Id="Provider" Absent="disallow" AllowAdvertise="no" Description="Used for Ref Counting" Display="hidden" Level="1" InstallDefault="local" Title="RefCounting" TypicalDefault="install">
      <ComponentRef Id="$(var.DependencyKeyId)" />
    </Feature>
    <Property Id="ProductFamily" Value="$(var.ProductFamily)" />
    <Property Id="ProductEdition" Value="$(var.ProductEdition)" />
    <Property Id="ProductCPU" Value="$(var.Platform)" />
    <Property Id="RTM_ProductVersion" Value="$(var.Dotnet_ProductVersion)" />
    <Property Id="MSIFASTINSTALL" Value="7" />
    <Property Id="NUGETVERSION" Value="$(var.NugetVersion)" />
    <WixVariable Id="WixUILicenseRtf" Value="$(var.MicrosoftEula)" />

    <Property Id="DOTNETEXE">
      <DirectorySearch Id="DOTNETPATH" Path="[#DOTNETHOME]">
        <FileSearch Id="DOTNETEXESEARCH" Name="dotnet.exe" />
      </DirectorySearch>
    </Property>

    <CustomActionRef Id="WixBroadcastEnvironmentChange" />

    <CustomAction Id="PropertyAssignPrimeCacheAndTelemetry"
                  Property="QtExecPrimeCacheAndTelemetryTarget"
                  Value="&quot;[DOTNETHOME]\dotnet.exe&quot; exec &quot;[DOTNETHOME]\sdk\[NUGETVERSION]\dotnet.dll&quot; internal-reportinstallsuccess &quot;[EXEFULLPATH]&quot;"
                  Execute="immediate" />
    <CustomAction Id="QtExecPrimeCacheAndTelemetryTarget"
                  BinaryKey="WixCA"
                  DllEntry="$(var.WixQuietExec)"
                  Execute="deferred"
                  Return="ignore"
                  Impersonate="no"/>

    <InstallExecuteSequence>
      <Custom Action="PropertyAssignPrimeCacheAndTelemetry" Before="QtExecPrimeCacheAndTelemetryTarget" />
      <Custom Action="QtExecPrimeCacheAndTelemetryTarget" Before="InstallFinalize" />
    </InstallExecuteSequence>
  </Product>
  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="$(var.Program_Files)">
        <Directory Id="DOTNETHOME" Name="dotnet"/>
      </Directory>
    </Directory>
  </Fragment>
</Wix>
