Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: WixInstaller/adblockplusie.wxs

Issue 10879048: Use minor upgrade mechanism for updates, set installer versionautomatically (Closed)
Patch Set: Created June 11, 2013, 1:21 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 Compilation Note: 3 Compilation Note:
4 You may see linking errors that look like these: 4 You may see linking errors that look like these:
5 <quote>LGHT0217 : Error executing ICE action 'ICExx' [...] The error cod e is 2738.</quote> 5 <quote>LGHT0217 : Error executing ICE action 'ICExx' [...] The error cod e is 2738.</quote>
6 The documentation for this error code talks about custom actions, 6 The documentation for this error code talks about custom actions,
7 even though the CustomAction keyword does not appear in this source. 7 even though the CustomAction keyword does not appear in this source.
8 Certain WiX elements are implemented by MSI custom actions, 8 Certain WiX elements are implemented by MSI custom actions,
9 which means this source implicitly declares some insofar as the Windows Installer sees it. 9 which means this source implicitly declares some insofar as the Windows Installer sees it.
10 These errors are benign and can be avoided by some fiddling with the registr y on the development machine. 10 These errors are benign and can be avoided by some fiddling with the registr y on the development machine.
11 See http://wix.sourceforge.net/faq.html#Error217 11 See http://wix.sourceforge.net/faq.html#Error217
12 --> 12 -->
13 <!-- 13 <!--
14 These definitions enable compiling multiple versions & Product ID's from the same file. 14 These definitions enable compiling multiple versions & Product ID's from the same file.
15 This is to allow testing upgrade features without having to switch back and forth between working copies. 15 This is to allow testing upgrade features without having to switch back and forth between working copies.
16 --> 16 -->
17 <?ifdef Version ?> 17 <?ifdef Version ?>
18 <!-- 18 <!--
19 If we're given a version on the command line, use it. 19 If we're given a version on the command line, use it.
20 We use a short name on the command line for ease of use. 20 We use a short name on the command line for ease of use.
21 We use a longer name within this file for clarity about which "version" it is specifically 21 We use a longer name within this file for clarity about which "version" it is specifically
22 --> 22 -->
23 <?define Product_Version=$(var.Version) ?> 23 <?define Product_Version=$(var.Version) ?>
24 <?else?> 24 <?else?>
25 <!-- 25 <?error "Version" parameter is required ?>
26 Assert no version definition was given on the command line.
27 -->
28 <?ifdef NoDefault ?>
29 <?error Found "NoDefault" but no "Version" ?>
30 <?else?>
31 <!-- The default version -->
32 <?define Product_Version="0.8.1" ?>
33 <?endif?>
34 <?endif?> 26 <?endif?>
35 27
36 <!-- 28 <?ifndef Configuration ?>
37 Convenience link for obtaining a new GUID, required at each version incremen t. 29 <?error "Configuration" parameter is required ?>
38 http://www.newguid.com/
39 -->
40 <?if $(var.Product_Version)="0.8.1" ?>
41 <!-- Default version -->
42 <?define Product_ID="3caab5a9-43a7-4a57-8373-b7d0952b709c" ?>
43 <?elseif $(var.Product_Version)="0.8.2" ?>
44 <?define Product_ID="794cdc54-95ae-4513-b2d7-2a01103a7c97" ?>
45 <?else?>
46 <?error Unknown product version="$(var.Product_Version)" ?>
47 <?endif?> 30 <?endif?>
48 31
32 <?define Product_ID="3caab5a9-43a7-4a57-8373-b7d0952b709c" ?>
Eric 2013/06/11 15:41:46 We'll need that second Product_ID soon enough for
Wladimir Palant 2013/06/12 09:46:34 We can just change the product ID when we implemen
33
49 <!-- 34 <!--
50 sys.BUILDARCH is set by the command line argument '-arch'. 35 sys.BUILDARCH is set by the command line argument '-arch'.
51 The default value to "x86" 36 The default value to "x86"
52 --> 37 -->
53 <?if $(sys.BUILDARCH)="x86"?> 38 <?if $(sys.BUILDARCH)="x86"?>
54 <?define Minimum_Version="100"?> 39 <?define Minimum_Version="100"?>
55 <?define Program_Files="ProgramFilesFolder"?> 40 <?define Program_Files="ProgramFilesFolder"?>
56 <?define Product_Name="!(loc.ProductName32)"?> 41 <?define Product_Name="!(loc.ProductName32)"?>
57 <?elseif $(sys.BUILDARCH)="x64"?> 42 <?elseif $(sys.BUILDARCH)="x64"?>
58 <?define Minimum_Version="200"?> 43 <?define Minimum_Version="200"?>
59 <?define Program_Files="ProgramFiles64Folder"?> 44 <?define Program_Files="ProgramFiles64Folder"?>
60 <?define Product_Name="!(loc.ProductName64)"?> 45 <?define Product_Name="!(loc.ProductName64)"?>
61 <?else?> 46 <?else?>
62 <?error Unsupported value of sys.BUILDARCH=$(sys.BUILDARCH)?> 47 <?error Unsupported value of sys.BUILDARCH=$(sys.BUILDARCH)?>
63 <?endif?> 48 <?endif?>
64 49
65 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 50 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
66 <Product 51 <Product
67 Name="$(var.Product_Name)" 52 Name="$(var.Product_Name)"
68 Manufacturer="Eyeo GmbH" 53 Manufacturer="Eyeo GmbH"
69 Version="$(var.Product_Version)" 54 Version="$(var.Product_Version)"
70 Language="!(loc.LANG)" Codepage="1252" 55 Language="!(loc.LANG)" Codepage="1252"
71 Id="$(var.Product_ID)" 56 Id="$(var.Product_ID)"
72 UpgradeCode="3a8e3ab4-762d-4641-806e-2dccb953d73f"> 57 UpgradeCode="3a8e3ab4-762d-4641-806e-2dccb953d73f">
73 58
74 <Package Id="*" 59 <Package Id="*"
75 Keywords="!(loc.Keywords)" 60 Keywords="!(loc.Keywords)"
76 Description="!(loc.Description)" 61 Description="!(loc.Description)"
77 Comments="!(loc.Comments)" 62 Comments="!(loc.Comments)"
78 InstallerVersion="$(var.Minimum_Version)" 63 InstallerVersion="$(var.Minimum_Version)"
79 Languages="!(loc.LANG)" SummaryCodepage="!(loc.CODEPAGE)" 64 Languages="!(loc.LANG)" SummaryCodepage="!(loc.CODEPAGE)"
80 Compressed="yes" 65 Compressed="yes"
81 InstallScope="perMachine" InstallPrivileges="elevated" 66 InstallScope="perMachine" InstallPrivileges="elevated"
82 /> 67 />
83 <!-- 68 <!--
84 The MajorUgrade tag allows us to specify the relationship between ou r version number and the one installed. 69 The MajorUgrade tag allows us to specify the relationship between ou r version number and the one installed.
85 The attribute AllowDowngrades="yes" permits our version number to be lower than the one installed. 70 The attribute AllowDowngrades="yes" permits our version number to be lower than the one installed.
86 The attribute Disallow="no" (the default) permits our version number to be higher than the one installed. 71 The attribute Disallow="no" (the default) permits our version number to be higher than the one installed.
87 For development releases (at least), we permit both cases. 72 For development releases (at least), we permit both cases.
88 For general releases, at present we also permit both. 73 For general releases, at present we also permit both.
89 74
90 The @Schedule attribute looks a little opaque. 75 The @Schedule attribute looks a little opaque.
91 Suffice it to say that it's the only option for scheduling where uni nstallation of the previous version 76 Suffice it to say that it's the only option for scheduling where uni nstallation of the previous version
92 and installation of the present version is _always_ going to act atomically. 77 and installation of the present version is _always_ going to act atomically.
93 It's a shame that you to even explicitly make that choice. 78 It's a shame that you to even explicitly make that choice.
94 --> 79 -->
95 <MajorUpgrade 80 <MajorUpgrade
96 AllowDowngrades="yes" 81 AllowDowngrades="yes"
97 Schedule="afterInstallExecute" 82 Schedule="afterInstallExecute"
98 /> 83 />
99 <MediaTemplate EmbedCab="yes"/> 84 <MediaTemplate EmbedCab="yes"/>
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 Name="AppDataFolder" Type="string" 154 Name="AppDataFolder" Type="string"
170 Value="[ABP_APPDATA_FOLDER]"/> 155 Value="[ABP_APPDATA_FOLDER]"/>
171 </Component> 156 </Component>
172 <!-- 157 <!--
173 Testing the 32-bit install on a 64 bit OS will cause these entries t o be written under Wow6432Node. 158 Testing the 32-bit install on a 64 bit OS will cause these entries t o be written under Wow6432Node.
174 It should be transparent to the application code, but in case it's n ot ... 159 It should be transparent to the application code, but in case it's n ot ...
175 See http://stackoverflow.com/questions/1882024/wix-will-not-add-hklm -registry-setting-during-windows-7-install 160 See http://stackoverflow.com/questions/1882024/wix-will-not-add-hklm -registry-setting-during-windows-7-install
176 --> 161 -->
177 <Property Id="INSTALLFOLDER"> 162 <Property Id="INSTALLFOLDER">
178 <RegistrySearch Id="Registry_Read_Install_Folder" 163 <RegistrySearch Id="Registry_Read_Install_Folder"
179 Root="HKLM" Key="Software\Adblock Plus for IE\0.8.0" 164 Root="HKLM" Key="Software\Adblock Plus for IE\$(var.Product_Vers ion)"
180 Name="InstallFolder" Type="raw"/> 165 Name="InstallFolder" Type="raw"/>
181 </Property> 166 </Property>
182 <Component Id="Install_Folder.component" Directory="INSTALLFOLDER"> 167 <Component Id="Install_Folder.component" Directory="INSTALLFOLDER">
183 <RegistryKey Root="HKLM" Key="Software\Adblock Plus for IE"> 168 <RegistryKey Root="HKLM" Key="Software\Adblock Plus for IE">
184 <RegistryKey Key="0.8.0"> 169 <RegistryKey Key="$(var.Product_Version)">
185 <RegistryValue 170 <RegistryValue
186 Name="InstallFolder" Type="string" 171 Name="InstallFolder" Type="string"
187 Value="[INSTALLFOLDER]"/> 172 Value="[INSTALLFOLDER]"/>
188 </RegistryKey> 173 </RegistryKey>
189 </RegistryKey> 174 </RegistryKey>
190 </Component> 175 </Component>
191 176
192 177
193 <!-- 178 <!--
194 The top-level directory structure. 179 The top-level directory structure.
(...skipping 30 matching lines...) Expand all
225 The present installer is a per-machine installer. 210 The present installer is a per-machine installer.
226 That means it writes to HKEY_LOCAL_MACHINE, so that all users on the machine will have the BHO installed. 211 That means it writes to HKEY_LOCAL_MACHINE, so that all users on the machine will have the BHO installed.
227 It's possible to write keys to HKEY_CURRENT_USER in a situation wher e that's not desirable, if needed. 212 It's possible to write keys to HKEY_CURRENT_USER in a situation wher e that's not desirable, if needed.
228 --> 213 -->
229 <ComponentGroup Id="Binaries" Directory="INSTALLFOLDER"> 214 <ComponentGroup Id="Binaries" Directory="INSTALLFOLDER">
230 <!-- 215 <!--
231 The 32-bit version of the DLL is included in both 32- and 64-bit installers. 216 The 32-bit version of the DLL is included in both 32- and 64-bit installers.
232 We need an explicit value for attribute @Win64 so that the ARCH argument does not override its implicit value. 217 We need an explicit value for attribute @Win64 so that the ARCH argument does not override its implicit value.
233 --> 218 -->
234 <Component Id="AdblockPlus32.dll" Win64="no"> 219 <Component Id="AdblockPlus32.dll" Win64="no">
235 <File Id="AdblockPlus32.dll" Source="..\build\ia32\Release Produ ction\AdblockPlus.dll" KeyPath="yes" Checksum="yes"> 220 <File Id="AdblockPlus32.dll" Source="..\build\ia32\$(var.Configu ration)\AdblockPlus.dll" KeyPath="yes" Checksum="yes">
236 <?include dll_class.wxi ?> 221 <?include dll_class.wxi ?>
237 </File> 222 </File>
238 <?include bho_registry_value.wxi ?> 223 <?include bho_registry_value.wxi ?>
239 </Component> 224 </Component>
240 <!-- 225 <!--
241 The 64-bit version of the DLL is only included in the 64-bit ins taller. 226 The 64-bit version of the DLL is only included in the 64-bit ins taller.
242 We don't really need an explicit value for attribute @Win64, but it's there for resilience. 227 We don't really need an explicit value for attribute @Win64, but it's there for resilience.
243 228
244 Note that the <Class> element and the <RegistryKey> element are duplicated from the 32-bit version. 229 Note that the <Class> element and the <RegistryKey> element are duplicated from the 32-bit version.
245 We use "include" directives to ensure that they are identical. 230 We use "include" directives to ensure that they are identical.
246 They have to be the same to support both the 32- and 64-bit vers ions of Internet Explorer on a 64-bit system. 231 They have to be the same to support both the 32- and 64-bit vers ions of Internet Explorer on a 64-bit system.
247 IE uses the same algorithm to search for BHO regardless of platf orm, 232 IE uses the same algorithm to search for BHO regardless of platf orm,
248 so with two versions of IE, we need two identical registrati ons. 233 so with two versions of IE, we need two identical registrati ons.
249 The 32-bit version on a 64-bit system will be registered under " Wow6432Node" translated keys, 234 The 32-bit version on a 64-bit system will be registered under " Wow6432Node" translated keys,
250 while the 64-bit version will be under the keys as they appe ar in this source, not translated. 235 while the 64-bit version will be under the keys as they appe ar in this source, not translated.
251 We don't need to put in the "Wow6432Node" registry key explicitl y; 236 We don't need to put in the "Wow6432Node" registry key explicitl y;
252 something in Windows Installer takes care of the mapping tra nsparently. 237 something in Windows Installer takes care of the mapping tra nsparently.
253 --> 238 -->
254 <?if $(sys.BUILDARCH)="x64"?> 239 <?if $(sys.BUILDARCH)="x64"?>
255 <Component Id="AdblockPlus64.dll" Win64="yes"> 240 <Component Id="AdblockPlus64.dll" Win64="yes">
256 <File Id="AdblockPlus64.dll" Source="..\build\x64\Release Pr oduction\AdblockPlusx64.dll" KeyPath="yes" Checksum="yes"> 241 <File Id="AdblockPlus64.dll" Source="..\build\x64\$(var.Conf iguration)\AdblockPlusx64.dll" KeyPath="yes" Checksum="yes">
257 <?include dll_class.wxi ?> 242 <?include dll_class.wxi ?>
258 </File> 243 </File>
259 <?include bho_registry_value.wxi ?> 244 <?include bho_registry_value.wxi ?>
260 </Component> 245 </Component>
261 <?endif?> 246 <?endif?>
262 247
263 <!-- 248 <!--
264 The engine must go into the same directory as the DLL, since tha t location is searched explicitly (and uniquely). 249 The engine must go into the same directory as the DLL, since tha t location is searched explicitly (and uniquely).
265 --> 250 -->
266 <?if $(sys.BUILDARCH)="x86"?> 251 <?if $(sys.BUILDARCH)="x86"?>
267 <Component Id="AdblockPlusEngine.exe" Win64="no"> 252 <Component Id="AdblockPlusEngine.exe" Win64="no">
268 <File Id="AdblockPlusEngine.exe" Source="..\build\ia32\Relea se Production\AdblockPlusEngine.exe" KeyPath="yes" Checksum="yes"/> 253 <File Id="AdblockPlusEngine.exe" Source="..\build\ia32\$(var .Configuration)\AdblockPlusEngine.exe" KeyPath="yes" Checksum="yes"/>
269 </Component> 254 </Component>
270 <?elseif $(sys.BUILDARCH)="x64"?> 255 <?elseif $(sys.BUILDARCH)="x64"?>
271 <Component Id="AdblockPlusEngine.exe" Win64="yes"> 256 <Component Id="AdblockPlusEngine.exe" Win64="yes">
272 <File Id="AdblockPlusEngine.exe" Source="..\build\x64\Releas e Production\AdblockPlusEngine.exe" KeyPath="yes" Checksum="yes"/> 257 <File Id="AdblockPlusEngine.exe" Source="..\build\x64\$(var. Configuration)\AdblockPlusEngine.exe" KeyPath="yes" Checksum="yes"/>
273 </Component> 258 </Component>
274 <?endif?> 259 <?endif?>
275 </ComponentGroup> 260 </ComponentGroup>
276 261
277 <!-- 262 <!--
278 The HTML_Tree component group contains all the files in the HTML fol der. 263 The HTML_Tree component group contains all the files in the HTML fol der.
279 Individual file entries within a single component group must all be in the same directory. 264 Individual file entries within a single component group must all be in the same directory.
280 Also, ComponentGroup is not a valid child of ComponentGroup, so subd irectories are linked by reference. 265 Also, ComponentGroup is not a valid child of ComponentGroup, so subd irectories are linked by reference.
281 --> 266 -->
282 <ComponentGroup Id="HTML_Tree"> 267 <ComponentGroup Id="HTML_Tree">
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 <ComponentGroup Id="INI_Files"> 353 <ComponentGroup Id="INI_Files">
369 <ComponentRef Id="ini_settings.ini"/> 354 <ComponentRef Id="ini_settings.ini"/>
370 </ComponentGroup> 355 </ComponentGroup>
371 <DirectoryRef Id="ABP_APPDATA_FOLDER"> 356 <DirectoryRef Id="ABP_APPDATA_FOLDER">
372 <Directory Id="ini" FileSource="SourceDir\..\files"> 357 <Directory Id="ini" FileSource="SourceDir\..\files">
373 <Component Id="ini_settings.ini"><File Name="settings.ini"/></Co mponent> 358 <Component Id="ini_settings.ini"><File Name="settings.ini"/></Co mponent>
374 </Directory> 359 </Directory>
375 </DirectoryRef> 360 </DirectoryRef>
376 </Product> 361 </Product>
377 </Wix> 362 </Wix>
OLDNEW

Powered by Google App Engine
This is Rietveld