github.com/ungtb10d/cli/v2@v2.0.0-20221110210412-98537dd9d6a1/build/windows/gh.wxs (about)

     1  <?xml version="1.0" encoding="utf-8"?>
     2  
     3  <?ifndef ProductVersion?>
     4  <?error ProductVersion property not defined?>
     5  <?endif?>
     6  
     7  <!-- Define a unique UpgradeCode per platform -->
     8  <?if $(var.Platform) = "x64"?>
     9  <?define InstallerVersion = "200"?>
    10  <?define UpgradeCode = "8CFB9531-B959-4E1B-AA2E-4AF0FFCC4AF4"?>
    11  <?define ProgramFilesFolder = "ProgramFiles64Folder"?>
    12  <?elseif $(var.Platform) = "x86"?>
    13  <?define InstallerVersion = "200"?>
    14  <?define UpgradeCode = "767EC5D2-C8F0-4912-9901-45E21F59A284"?>
    15  <?define ProgramFilesFolder = "ProgramFilesFolder"?>
    16  <?elseif $(var.Platform) = "arm64"?>
    17  <?define InstallerVersion = "500"?>
    18  <?define UpgradeCode = "5D15E95C-F979-41B0-826C-C33C8CB5A7EB"?>
    19  <?define ProgramFilesFolder = "ProgramFiles64Folder"?>
    20  <?elseif $(var.Platform) = "arm"?>
    21  <?define InstallerVersion = "500"?>
    22  <?define UpgradeCode = "DDDE52AA-42DA-404B-9238-77DC86117CFF"?>
    23  <?define ProgramFilesFolder = "ProgramFilesFolder"?>
    24  <?endif?>
    25  
    26  <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    27      <Product Id="*" Name="GitHub CLI" Version="$(var.ProductVersion)" Language="1033" Manufacturer="GitHub, Inc." UpgradeCode="$(var.UpgradeCode)">
    28          <Package Compressed="yes" InstallerVersion="$(var.InstallerVersion)" InstallScope="perMachine"/>
    29          <MediaTemplate EmbedCab="yes"/>
    30  
    31          <!-- Remove older product(s) early but within the transaction -->
    32          <MajorUpgrade Schedule="afterInstallInitialize" DowngradeErrorMessage="A newer version of !(bind.property.ProductName) is already installed."/>
    33  
    34          <!-- Upgrade older x86 products -->
    35          <Upgrade Id="7C0A5736-5B8E-4176-B350-613FA2D8A1B3">
    36              <UpgradeVersion Maximum="$(var.ProductVersion)" Property="OLDERX86VERSIONDETECTED"/>
    37          </Upgrade>
    38  
    39          <Directory Id="TARGETDIR" Name="SourceDir">
    40              <Directory Id="$(var.ProgramFilesFolder)" Name="Program Files">
    41                  <Directory Id="INSTALLDIR" Name="GitHub CLI"/>
    42              </Directory>
    43          </Directory>
    44  
    45          <!-- Restore the INSTALLDIR if previously persisted to the registry -->
    46          <Property Id="INSTALLDIR">
    47              <RegistrySearch Id="InstallDir" Root="HKLM" Key="SOFTWARE\GitHub\CLI" Name="InstallDir" Type="directory"/>
    48          </Property>
    49  
    50          <Feature Id="DefaultFeature" ConfigurableDirectory="INSTALLDIR">
    51              <!-- @Guid will be automatically and durably assigned based on key path -->
    52              <Component Directory="INSTALLDIR">
    53                  <File Name="gh.exe"/>
    54                  <Environment Id="Path" Action="set" Name="PATH" Part="last" System="yes" Value="[INSTALLDIR]"/>
    55              </Component>
    56  
    57              <!-- Persist the INSTALLDIR and restore it in subsequent installs -->
    58              <Component Directory="INSTALLDIR">
    59                  <RegistryValue Root="HKLM" Key="SOFTWARE\GitHub\CLI" Name="InstallDir" Type="string" Value="[INSTALLDIR]"/>
    60              </Component>
    61  
    62              <Component Id="OlderX86Env" Guid="50C15744-A674-404B-873C-6B58957E2A32" Directory="TARGETDIR" Win64="no">
    63                  <Condition><![CDATA[OLDERX86VERSIONDETECTED]]></Condition>
    64  
    65                  <!-- Clean up the old x86 package default directory from the user environment -->
    66                  <Environment Id="OlderX86Path" Action="remove" Name="PATH" Part="last" System="no" Value="[ProgramFilesFolder]GitHub CLI\"/>
    67              </Component>
    68          </Feature>
    69  
    70          <!-- Broadcast environment variable changes -->
    71          <CustomActionRef Id="WixBroadcastEnvironmentChange" />
    72  
    73          <!-- Use customized WixUI_InstallDir that removes WixUI_LicenseAgreementDlg -->
    74          <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"/>
    75          <UIRef Id="GitHubCLI_InstallDir"/>
    76      </Product>
    77  </Wix>