1 <?xml version=
"1.0" encoding=
"utf-8"?>
2 <Wix xmlns=
"http://schemas.microsoft.com/wix/2006/wi">
3 <?include Includes.wxi
?>
5 UpgradeCode=
"$(var.UpgradeGuid)"
6 Name=
"$(var.ProductName) $(var.VersionNumberUserVisible) $(var.PlatformUserVisible)"
8 Version=
"$(var.VersionNumberInternal)"
9 Manufacturer=
"TortoiseGit"
14 Keywords=
"$(var.PackageKeywords)"
15 Description=
"$(var.PackageDescription)"
16 Comments=
"$(var.PackageComments)"
17 Manufacturer=
"$(var.PackageManufacturer)"
18 InstallerVersion=
"300"
19 Platform=
"$(var.PackagePlatforms)"
22 SummaryCodepage=
"1252"
23 InstallPrivileges=
"elevated" />
25 <Upgrade Id=
"$(var.UpgradeGuid)" >
26 <!-- upgrade is flagged if current-install is newer than or equal to package -->
27 <UpgradeVersion Property=
"NEWERVERSIONDETECTED" Minimum=
"$(var.VersionNumberInternal)" OnlyDetect=
"yes" />
29 <!-- flag is set if the install will trigger an upgrade of an existing install -->
30 <UpgradeVersion Property=
"PREVIOUSVERSIONSINSTALLED" Maximum=
"$(var.VersionNumberInternal)" IncludeMaximum=
"no" MigrateFeatures=
"yes" />
33 <Media Id=
"1" Cabinet=
"TSVN.cab" EmbedCab=
"yes" CompressionLevel=
"high" />
35 <Icon Id=
"TSVNIcon" SourceFile=
"..\Resources\Tortoise.ico" />
37 <Property Id=
"SSHRadio">Plink
</Property>
39 <!-- Launch Condition related properties ................................................................................. -->
40 <Property Id=
"VERSIONIE">
41 <RegistrySearch Id=
"RegSearchIeVersion" Root=
"HKLM" Key=
"SOFTWARE\Microsoft\Internet Explorer" Name=
"Version" Type=
"raw" Win64=
"$(var.Win64YesNo)"/>
43 <Condition Message=
"[ProductName] needs at least Internet Explorer 5">NOT ((VERSIONIE
<<"1") OR (VERSIONIE
<<"2") OR (VERSIONIE
<<"3") OR (VERSIONIE
<<"4"))
</Condition>
45 <?if $(var.Platform) =
"x86" ?>
46 <Property Id=
"GDIPLUSINSTALLED">
47 <DirectorySearch Id=
"WND" Path=
"[SystemFolder]">
48 <FileSearch Name=
"GDIPlus.dll" />
51 <Condition Message=
"You must have GDIPlus installed. Please download it from Microsoft and copy the GDIPlus.dll into your Windows\System32 folder."><![CDATA[((GDIPLUSINSTALLED<
>"") OR (VersionNT <
> 500))]]
></Condition>
54 <Property Id=
"ShowChangelogCheck">1</Property>
55 <Property Id=
"ALLUSERS">1</Property>
57 <Condition Message=
"[ProductName] requires a Windows NT based OS (Windows 2000 or later, specifically).">VersionNT
</Condition>
58 <Condition Message=
"[ProductName] requires Windows 2000 SP4 or later."><![CDATA[(VersionNT
> 500) OR ((VersionNT =
500) AND (ServicePackLevel
>=
4))]]
></Condition>
60 <?if $(var.Platform) =
"x86" ?>
61 <Condition Message=
"You are attempting to run the 32-bit installer on a 64-bit version of Windows. Please install the 64-bit version of TortoiseGit instead.">NOT Msix64
</Condition>
64 <?if $(var.Platform) =
"x64" ?>
65 <Upgrade Id=
"$(var.UpgradeGuid32)">
66 <UpgradeVersion Minimum=
"0.0.0.0" OnlyDetect=
"yes" Property=
"WIN32TGITFOUND" />
68 <Condition Message=
"Please uninstall all 32-bit versions of TortoiseGit before installing [ProductName].">NOT WIN32TGITFOUND
</Condition>
71 <!-- Show/Don't-show changelog related properties and custom actions ..................................................... -->
72 <Property Id=
"TEXTEDITOR">
73 <DirectorySearch Id=
"FileSearchTextEditorExe" Path=
"[WindowsFolder]">
74 <FileSearch Id=
"FileSearchTextEditorExe" Name=
"notepad.exe" />
77 <CustomAction Id=
"Set_ShowChangelog" Property=
"ShowChangelog" Value=
"Yes" Return=
"check" />
78 <CustomAction Id=
"ShowChangelogAction" Property=
"TEXTEDITOR" ExeCommand=
"[INSTALLDIR]changelog.txt" Return=
"asyncNoWait" />
80 <CustomAction Id=
"ShowDonatePage" BinaryKey=
"CustomActionsDLL" DllEntry=
"OpenDonatePage" />
82 <CustomAction Id=
"KillCache" BinaryKey=
"CustomActionsDLL" DllEntry=
"TerminateCache" />
83 <Binary Id=
"CustomActionsDLL" SourceFile=
"..\..\bin\$(var.ReleasePath)\bin\CustomActions.dll" />
85 <!-- Unsafe-check properties and custom actions .......................................................................... -->
86 <Property Id=
"VSDUIANDADVERTISED">This advertised application will not be installed because it might be unsafe. Contact your administrator to change the installation user interface option of the package to basic.
</Property>
87 <CustomAction Id=
"ERRCA_UIANDADVERTISED" Error=
"[VSDUIANDADVERTISED]" />
89 <!-- Figure out where a previous installation was, if any ................................................................ -->
90 <?if $(var.Platform) =
"x64" ?>
91 <CustomAction Id=
"DefaultTargetDir" Property=
"INSTALLDIR" Value=
"[ProgramFiles64Folder]$(var.ProductName)" Execute=
"immediate" />
92 <Property Id=
"INSTALLDIR">
93 <RegistrySearch Id=
"PreviousInstallLocationRegistrySearch" Root=
"HKLM" Key=
"Software\[Manufacturer]" Name=
"Directory" Type=
"raw" Win64=
"$(var.Win64YesNo)"/>
96 <CustomAction Id=
"DefaultTargetDir" Property=
"INSTALLDIR" Value=
"[ProgramFilesFolder]$(var.ProductName)" Execute=
"immediate" />
97 <Property Id=
"INSTALLDIR">
98 <RegistrySearch Id=
"PreviousInstallLocationRegistrySearch" Root=
"HKLM" Key=
"Software\[Manufacturer]" Name=
"Directory" Type=
"raw" Win64=
"$(var.Win64YesNo)"/>
102 <?include FeaturesFragment.wxi
?>
103 <?include StructureFragment.wxi
?>
104 <?include UIFragment.wxi
?>
107 <FragmentRef Id="StructureFragment"/>
109 <FragmentRef Id="FeaturesFragment" />
111 <FragmentRef Id="UIFragment" />
113 <!-- Execute Sequencing ................................................................................................. -->
114 <AdminExecuteSequence />
115 <InstallExecuteSequence>
116 <!-- AppSearch must be done before RemoveExistingProducts and before FindRelatedProducts -->
117 <AppSearch Sequence=
"1"></AppSearch>
118 <LaunchConditions After=
"AppSearch" />
119 <Custom Action=
"DefaultTargetDir" After=
"LaunchConditions">INSTALLDIR=
""</Custom>
121 <RemoveExistingProducts After=
"InstallFinalize"><![CDATA[PREVIOUSVERSIONSINSTALLED OR (NOT NEWERVERSIONDETECTED AND OKTODOWNGRADE =
1)]]
></RemoveExistingProducts>
123 <Custom Action=
"KillCache" After=
"RemoveExistingProducts">Installed
</Custom>
125 </InstallExecuteSequence>
127 <!-- UI Sequencing ...................................................................................................... -->
129 <Show Dialog=
"FatalErrorDlg" OnExit=
"error" />
130 <Show Dialog=
"UserExit" OnExit=
"cancel" />
131 <Show Dialog=
"ExitDlg" OnExit=
"success" />
132 <Show Dialog=
"PrepareDlg" Before=
"CostInitialize"><![CDATA[]]
></Show>
133 <Show Dialog=
"AdminWelcomeDlg" After=
"CostFinalize" />
134 <Show Dialog=
"ProgressDlg" After=
"AdminWelcomeDlg" />
137 <Show Dialog=
"FatalErrorDlg" OnExit=
"error" />
138 <Show Dialog=
"UserExit" OnExit=
"cancel" />
139 <Show Dialog=
"ExitDlg" OnExit=
"success" />
140 <Show Dialog=
"PrepareDlg" After=
"LaunchConditions" />
141 <Show Dialog=
"WelcomeDlg" After=
"MigrateFeatureStates"><![CDATA[NOT Installed]]
></Show>
142 <Show Dialog=
"ResumeDlg" After=
"WelcomeDlg"><![CDATA[Installed AND (RESUME OR Preselected)]]
></Show>
143 <Show Dialog=
"MaintenanceWelcomeDlg" After=
"ResumeDlg"><![CDATA[Installed AND NOT RESUME AND NOT Preselected]]
></Show>
144 <Show Dialog=
"ProgressDlg" After=
"MaintenanceWelcomeDlg" />
146 <FindRelatedProducts Suppress=
"no">1</FindRelatedProducts>
148 <Custom Action=
"DefaultTargetDir" After=
"PrepareDlg">INSTALLDIR=
""</Custom>
149 <Custom Action=
"ERRCA_UIANDADVERTISED" Before=
"AppSearch">ProductState=
1</Custom>
150 <Custom Action=
"Set_ShowChangelog" After=
"AppSearch">NOT Installed
</Custom>