1 <?xml version="1.0" encoding="utf-8"?>
\r
2 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
\r
3 <?include Includes.wxi?>
\r
5 UpgradeCode="$(var.UpgradeGuid)"
\r
6 Name="$(var.ProductName) $(var.VersionNumberUserVisible) $(var.PlatformUserVisible)"
\r
7 Id="EB66C774-5CFC-41f6-9C03-CE4F9037150A"
\r
8 Version="$(var.VersionNumberInternal)"
\r
9 Manufacturer="TortoiseGit"
\r
12 Id="82B77BC3-0ACD-4a53-A34F-3F203E59D51A"
\r
13 Keywords="$(var.PackageKeywords)"
\r
14 Description="$(var.PackageDescription)"
\r
15 Comments="$(var.PackageComments)"
\r
16 Manufacturer="$(var.PackageManufacturer)"
\r
17 InstallerVersion="300"
\r
18 Platform="$(var.PackagePlatforms)"
\r
21 SummaryCodepage="1252"/>
\r
23 <Upgrade Id="$(var.UpgradeGuid)" >
\r
24 <!-- upgrade is flagged if current-install is newer than or equal to package - TODO: should make a dialog appear asking user to confirm downgrade. -->
\r
25 <UpgradeVersion Property="NEWERVERSIONDETECTED" Minimum="$(var.VersionNumberInternal)" OnlyDetect="yes" />
\r
27 <!-- flag is set if the install will trigger an upgrade of an existing install -->
\r
29 <UpgradeVersion Property="PREVIOUSVERSIONSINSTALLED" Maximum="$(var.VersionNumberInternal)" IncludeMaximum="no" />
\r
32 <Media Id="1" Cabinet="TSVN.cab" EmbedCab="yes" CompressionLevel="high" />
\r
34 <Icon Id="TSVNIcon" SourceFile="..\Resources\Tortoise.ico" />
\r
36 <!-- Launch Condition related properties ................................................................................. -->
\r
37 <Property Id="VERSIONIE">
\r
38 <RegistrySearch Id="RegSearchIeVersion" Root="HKLM" Key="SOFTWARE\Microsoft\Internet Explorer" Name="Version" Type="raw" Win64="$(var.Win64YesNo)"/>
\r
40 <Condition Message="[ProductName] needs at least Internet Explorer 5">NOT ((VERSIONIE<<"1") OR (VERSIONIE<<"2") OR (VERSIONIE<<"3") OR (VERSIONIE<<"4"))</Condition>
\r
42 <?if $(var.Platform) = "win32" ?>
\r
43 <Property Id="GDIPLUSINSTALLED">
\r
44 <DirectorySearch Id="WND" Path="[SystemFolder]">
\r
45 <FileSearch LongName="GDIPlus.dll" />
\r
48 <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>
\r
51 <Property Id="ShowChangelogCheck">1</Property>
\r
52 <Property Id="ALLUSERS">1</Property>
\r
54 <Condition Message="[ProductName] requires a Windows NT based OS (Windows 2000 or later, specifically).">VersionNT</Condition>
\r
55 <Condition Message="[ProductName] requires Windows 2000 or later."><![CDATA[VersionNT >= 500]]></Condition>
\r
57 <!-- Show/Don't-show changelog related properties and custom actions ..................................................... -->
\r
58 <Property Id="TEXTEDITOR">
\r
59 <DirectorySearch Id="FileSearchTextEditorExe" Path="[WindowsFolder]">
\r
60 <FileSearch Id="FileSearchTextEditorExe" Name="notepad.exe" />
\r
63 <CustomAction Id="Set_ShowChangelog" Property="ShowChangelog" Value="Yes" Return="check" />
\r
64 <CustomAction Id="ShowChangelogAction" Property="TEXTEDITOR" ExeCommand="[INSTALLDIR]changelog.txt" Return="asyncNoWait" />
\r
66 <CustomAction Id="ShowDonatePage" BinaryKey="CustomActionsDLL" DllEntry="OpenDonatePage" />
\r
69 <CustomAction Id="KillCache" BinaryKey="CustomActionsDLL" DllEntry="TerminateCache" />
\r
70 <Binary Id="CustomActionsDLL" src="..\..\bin\$(var.ReleasePath)\bin\CustomActions.dll" />
\r
72 <!-- Unsafe-check properties and custom actions .......................................................................... -->
\r
73 <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>
\r
74 <CustomAction Id="ERRCA_UIANDADVERTISED" Error="[VSDUIANDADVERTISED]" />
\r
76 <!-- Figure out where a previous installation was, if any ................................................................ -->
\r
77 <?if $(var.Platform) = "x64" ?>
\r
78 <CustomAction Id="DefaultTargetDir" Property="INSTALLDIR" Value="[ProgramFiles64Folder]$(var.ProductName)" Execute="immediate" />
\r
79 <Property Id="INSTALLDIR">
\r
80 <RegistrySearch Id="PreviousInstallLocationRegistrySearch" Root="HKLM" Key="Software\[Manufacturer]" Name="Directory" Type="raw" Win64="$(var.Win64YesNo)"/>
\r
83 <CustomAction Id="DefaultTargetDir" Property="INSTALLDIR" Value="[ProgramFilesFolder]$(var.ProductName)" Execute="immediate" />
\r
84 <Property Id="INSTALLDIR">
\r
85 <RegistrySearch Id="PreviousInstallLocationRegistrySearch" Root="HKLM" Key="Software\[Manufacturer]" Name="Directory" Type="raw" Win64="$(var.Win64YesNo)"/>
\r
89 <?include FeaturesFragment.wxi?>
\r
90 <?include StructureFragment.wxi?>
\r
91 <?include UIFragment.wxi?>
\r
94 <FragmentRef Id="StructureFragment"/>
\r
96 <FragmentRef Id="FeaturesFragment" />
\r
98 <FragmentRef Id="UIFragment" />
\r
100 <!-- Execute Sequencing ................................................................................................. -->
\r
101 <AdminExecuteSequence />
\r
102 <InstallExecuteSequence>
\r
103 <!-- AppSearch must be done before RemoveExistingProducts and before FindRelatedProducts -->
\r
104 <AppSearch Sequence="1"></AppSearch>
\r
105 <LaunchConditions After="AppSearch" />
\r
106 <Custom Action="DefaultTargetDir" After="LaunchConditions">INSTALLDIR=""</Custom>
\r
108 <RemoveExistingProducts After="FindRelatedProducts"><![CDATA[PREVIOUSVERSIONSINSTALLED OR (NOT NEWERVERSIONDETECTED AND OKTODOWNGRADE = 1)]]></RemoveExistingProducts>
\r
111 <Custom Action="KillCache" After="RemoveExistingProducts">Installed</Custom>
\r
113 <ScheduleReboot After="RegisterProduct" />
\r
114 </InstallExecuteSequence>
\r
116 <!-- UI Sequencing ...................................................................................................... -->
\r
118 <Show Dialog="FatalErrorDlg" OnExit="error" />
\r
119 <Show Dialog="UserExit" OnExit="cancel" />
\r
120 <Show Dialog="ExitDlg" OnExit="success" />
\r
121 <Show Dialog="PrepareDlg" Before="CostInitialize"><![CDATA[]]></Show>
\r
122 <Show Dialog="AdminWelcomeDlg" After="CostFinalize" />
\r
123 <Show Dialog="ProgressDlg" After="AdminWelcomeDlg" />
\r
125 <InstallUISequence>
\r
126 <Show Dialog="FatalErrorDlg" OnExit="error" />
\r
127 <Show Dialog="UserExit" OnExit="cancel" />
\r
128 <Show Dialog="ExitDlg" OnExit="success" />
\r
129 <Show Dialog="PrepareDlg" After="LaunchConditions" />
\r
130 <Show Dialog="WelcomeDlg" After="MigrateFeatureStates"><![CDATA[NOT Installed]]></Show>
\r
131 <Show Dialog="ResumeDlg" After="WelcomeDlg"><![CDATA[Installed AND (RESUME OR Preselected)]]></Show>
\r
132 <Show Dialog="MaintenanceWelcomeDlg" After="ResumeDlg"><![CDATA[Installed AND NOT RESUME AND NOT Preselected]]></Show>
\r
133 <Show Dialog="ProgressDlg" After="MaintenanceWelcomeDlg" />
\r
135 <FindRelatedProducts Suppress="no">1</FindRelatedProducts>
\r
137 <Custom Action="DefaultTargetDir" After="PrepareDlg">INSTALLDIR=""</Custom>
\r
138 <Custom Action="ERRCA_UIANDADVERTISED" Before="AppSearch">ProductState=1</Custom>
\r
139 <Custom Action="Set_ShowChangelog" After="AppSearch">NOT Installed</Custom>
\r
140 </InstallUISequence>
\r