1<?xml version="1.0" encoding="UTF-8"?> 2<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 3 <Product Id="*" Language="!(loc.LCID)" Name="!(loc.Title)" Version="$(var.Version)" Manufacturer="!(loc.Manufacturer)" UpgradeCode="$(var.UpgradeCode)"> 4 <Package InstallerVersion="500" Compressed="yes" InstallScope="perUser" /> 5 <MediaTemplate EmbedCab="yes" CompressionLevel="high" /> 6 7 <Property Id="Suppress_TARGETDIR_Check" Value="1" /> 8 <Icon Id="ARPIcon" SourceFile="!(bindpath.src)PC\icons\launcher.ico" /> 9 <Property Id="ARPPRODUCTICON" Value="ARPIcon" /> 10 <Property Id="ARPNOMODIFY" Value="1" /> 11 <Property Id="DISABLEADVTSHORTCUTS" Value="1" /> 12 13 <Property Id="ARM64_SHELLEXT"> 14 <ComponentSearch Id="RegistrySearch_ARM64_SHELLEXT_Detected" 15 Guid="{C591963D-7FC6-4FCE-8642-5E01E6B8848F}" /> 16 </Property> 17 18 <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)"> 19 <ComponentGroupRef Id="launcher_exe" Primary="yes" /> 20 </Feature> 21 <Feature Id="AssociateFiles" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)"> 22 <ComponentGroupRef Id="launcher_exe" /> 23 <ComponentGroupRef Id="launcher_reg" /> 24 </Feature> 25 26 <Directory Id="TARGETDIR" Name="SourceDir"> 27 <Directory Id="LauncherInstallDirectory" /> 28 </Directory> 29 30 <CustomAction Id="SetLauncherInstallDirectoryLM" Property="LauncherInstallDirectory" Value="[WindowsFolder]" /> 31 <CustomAction Id="SetLauncherInstallDirectoryCU" Property="LauncherInstallDirectory" Value="[LocalAppDataFolder]Programs\Python\Launcher" /> 32 33 <InstallExecuteSequence> 34 <Custom Before="SetLauncherInstallDirectoryLM" Action="SetLauncherInstallDirectoryCU">NOT Installed AND NOT ALLUSERS=1</Custom> 35 <Custom Before="CostFinalize" Action="SetLauncherInstallDirectoryLM">NOT Installed AND ALLUSERS=1</Custom> 36 37 <?if $(var.UpgradeMinimumVersion)="3.11.0.0" ?> 38 <RemoveExistingProducts After="InstallValidate">UPGRADE or REMOVE_350_LAUNCHER or REMOVE_360A1_LAUNCHER or UPGRADE_3_11_0 or UPGRADE_3_11_1</RemoveExistingProducts> 39 <?else ?> 40 <RemoveExistingProducts After="InstallValidate">UPGRADE or REMOVE_350_LAUNCHER or REMOVE_360A1_LAUNCHER</RemoveExistingProducts> 41 <?endif ?> 42 </InstallExecuteSequence> 43 44 <?if $(var.UpgradeMinimumVersion)="3.11.0.0" ?> 45 <Condition Message="!(loc.NoDowngrade)">Installed OR NOT DOWNGRADE OR UPGRADE_3_11_0 OR UPGRADE_3_11_1</Condition> 46 <?else ?> 47 <Condition Message="!(loc.NoDowngrade)">Installed OR NOT DOWNGRADE</Condition> 48 <?endif ?> 49 50 <!-- Upgrade all versions of the launcher --> 51 <Upgrade Id="$(var.UpgradeCode)"> 52 <UpgradeVersion Property="DOWNGRADE" Minimum="$(var.Version)" IncludeMinimum="no" OnlyDetect="yes" /> 53 <UpgradeVersion Property="UPGRADE" Minimum="0.0.0.0" IncludeMinimum="yes" Maximum="$(var.Version)" IncludeMaximum="no" /> 54 <!-- 55 Prior to 3.11.2150, version numbers incorrectly used date-based 56 revision numbers in the third field. Because these are higher than 57 the real version, it prevents upgrades. 58 Releases of 3.10 have a similar issue, however, no significant 59 changes have shipped in the launcher, so we don't worry about it. 60 --> 61 <?if $(var.UpgradeMinimumVersion)="3.11.0.0" ?> 62 <UpgradeVersion Property="UPGRADE_3_11_0" Minimum="3.11.7966.0" IncludeMinimum="yes" Maximum="3.11.7966.0" IncludeMaximum="yes" /> 63 <UpgradeVersion Property="UPGRADE_3_11_1" Minimum="3.11.8009.0" IncludeMinimum="yes" Maximum="3.11.8009.0" IncludeMaximum="yes" /> 64 <?endif ?> 65 </Upgrade> 66 <!-- Python 3.5.0 shipped with a different UpgradeCode --> 67 <Upgrade Id="A71530B9-E89D-53DB-9C2D-C6D7551876D8"> 68 <UpgradeVersion Minimum="0.0.0.0" Property="REMOVE_350_LAUNCHER" /> 69 </Upgrade> 70 <!-- Python 3.6.0a1 shipped with a different UpgradeCode --> 71 <Upgrade Id="394750C0-7880-5A8F-999F-933965FBCFB4"> 72 <UpgradeVersion Minimum="0.0.0.0" Property="REMOVE_360A1_LAUNCHER" /> 73 </Upgrade> 74 </Product> 75</Wix> 76