| Left: | ||
| Right: |
| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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> |
| OLD | NEW |