<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">

  <!-- MSI installs on Win7 and above -->
  <?define MinOSVersionSupported = "VersionNT >= 601" ?>

  <!-- The URL for add/remove programs -->
  <!-- TBD:Point to the actual release -->
  <?define InfoURL="https://github.com/PowerShell/PowerShell" ?>

  <?define ProductName = "$(env.ProductName)" ?>
  <?define ProductGuid = "$(env.ProductGuid)" ?>
  <?define ProductVersion = "$(env.ProductVersion)" ?>
  <?define ProductSemanticVersion = "$(env.ProductSemanticVersion)" ?>
  <?define ProductVersionWithName = "$(var.ProductName)_$(var.ProductVersion)"?>
  <?define ProductSemanticVersionWithName = "$(var.ProductName)-$(env.ProductSemanticVersion)"?>
  <?define ProductTargetArchitecture = "$(env.ProductTargetArchitecture)"?>
  <?define ProductProgFilesDir = "$(env.ProductProgFilesDir)" ?>

  <!-- Generate Your Own GUID for both ID and UpgradeCode attributes. -->
  <!-- Note:  UpgradeCode GUID MUST REMAIN SAME THROUGHOUT ALL VERSIONS -->
  <!-- Otherwise, updates won't occur -->
  <Product Id="$(var.ProductGuid)" Name="$(var.ProductSemanticVersionWithName)" Language="1033" Version="$(var.ProductVersion)" Manufacturer="Microsoft Corporation" UpgradeCode="{f7ba3e58-0be8-443b-ac91-f99dd1e7bd3b}">
    <!-- Properties About The Package -->
    <Package Id="*" Keywords="Installer" Platform="$(var.ProductTargetArchitecture)" InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Description="PowerShell package" Comments="PowerShell for every system" />

    <!-- Add PowerShell icon for executable -->
    <Icon Id="PowerShellExe.ico" SourceFile="assets\Powershell_256.ico" />

    <!-- Add PowerShell icon in Add/Remove Programs -->
    <Property Id="ARPPRODUCTICON" Value="PowerShellExe.ico" />

    <!-- Set properties for add/remove programs -->
    <Property Id="ARPHELPLINK" Value="$(var.InfoURL)" />
    
    <!-- Prerequisites -->
    <Condition Message="Supported only on Win8 and above"><![CDATA[ Installed OR $(var.MinOSVersionSupported) ]]></Condition>

    <!-- Information About When Older Versions Are Trying To Be Installed-->
    <MajorUpgrade DowngradeErrorMessage="A newer version of PowerShell is already installed." />
    
    <!-- Embed Cabinet Files in Product-->
    <MediaTemplate EmbedCab="yes" />
    
    <!-- In Your Wix Setup Project, Add A Reference To WixUIExtension.dll -->    
    <UIRef Id="WixUI_InstallDir" />

    <!-- Features are mandatory.  Need At Least One. -->
    <Feature Id="ProductFeature" Title="PowerShell" Level="1">
      <ComponentGroupRef Id="$(var.ProductVersionWithName)"/>
      <ComponentRef Id="ProductVersionFolder"/>
      <ComponentRef Id="ApplicationProgramsMenuShortcut"/>
    </Feature>

    <!--We need to show EULA, and provide option to customize download location-->        
    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />

    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="$(var.ProductProgFilesDir)">
        <Directory Id="INSTALLFOLDER" Name="PowerShell">
          <Directory Id="$(var.ProductVersionWithName)" Name="$(var.ProductSemanticVersion)">
            <Component Id="ProductVersionFolder" Guid="{e1a7f05e-0cd6-4227-80a8-e4fb311f045c}">
              <CreateFolder/>
            </Component>
          </Directory>
        </Directory>        
      </Directory>
      <Directory Id="ProgramMenuFolder">
        <Directory Id="ApplicationProgramsFolder" Name="$(var.ProductSemanticVersionWithName)">
          <Component Id="ApplicationProgramsMenuShortcut" Guid="{A77507A7-F970-4618-AC30-20AFE36EE2EB}">
            <Shortcut Id="PowerShell_ProgramsMenuShortcut"
              Name="$(var.ProductSemanticVersionWithName)"
              Description="$(var.ProductSemanticVersionWithName)"
              Target="[$(var.ProductVersionWithName)]PowerShell.exe"
              WorkingDirectory="$(var.ProductVersionWithName)"
              Icon = "PowerShellExe.ico" />

            <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>

            <RegistryValue Root="HKCU"
                           Key="Software\Microsoft\$(var.ProductSemanticVersionWithName)\ProgramsMenuShortcut"
                           Name="installed"
                           Type="integer"
                           Value="1" KeyPath="yes"/>
          </Component>
        </Directory>
      </Directory>
    </Directory>

  </Product>
</Wix>
