| Index: WixInstaller/adblockplusie.wxs |
| =================================================================== |
| --- a/WixInstaller/adblockplusie.wxs |
| +++ b/WixInstaller/adblockplusie.wxs |
| @@ -7,50 +7,35 @@ |
| even though the CustomAction keyword does not appear in this source. |
| Certain WiX elements are implemented by MSI custom actions, |
| which means this source implicitly declares some insofar as the Windows Installer sees it. |
| These errors are benign and can be avoided by some fiddling with the registry on the development machine. |
| See http://wix.sourceforge.net/faq.html#Error217 |
| --> |
| <!-- |
| These definitions enable compiling multiple versions & Product ID's from the same file. |
| - This is to allow testing upgrade features without having to switch back and forth between working copies. |
| + This is to allow testing upgrade features without having to switch back and forth between working copies. |
| --> |
| <?ifdef Version ?> |
| - <!-- |
| + <!-- |
| If we're given a version on the command line, use it. |
| We use a short name on the command line for ease of use. |
| - We use a longer name within this file for clarity about which "version" it is specifically |
| + We use a longer name within this file for clarity about which "version" it is specifically |
| --> |
| <?define Product_Version=$(var.Version) ?> |
| <?else?> |
| - <!-- |
| - Assert no version definition was given on the command line. |
| - --> |
| - <?ifdef NoDefault ?> |
| - <?error Found "NoDefault" but no "Version" ?> |
| - <?else?> |
| - <!-- The default version --> |
| - <?define Product_Version="0.8.1" ?> |
| - <?endif?> |
| + <?error "Version" parameter is required ?> |
| <?endif?> |
| -<!-- |
| - Convenience link for obtaining a new GUID, required at each version increment. |
| - http://www.newguid.com/ |
| ---> |
| -<?if $(var.Product_Version)="0.8.1" ?> |
| - <!-- Default version --> |
| - <?define Product_ID="3caab5a9-43a7-4a57-8373-b7d0952b709c" ?> |
| -<?elseif $(var.Product_Version)="0.8.2" ?> |
| - <?define Product_ID="794cdc54-95ae-4513-b2d7-2a01103a7c97" ?> |
| -<?else?> |
| - <?error Unknown product version="$(var.Product_Version)" ?> |
| +<?ifndef Configuration ?> |
| + <?error "Configuration" parameter is required ?> |
| <?endif?> |
| +<?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
|
| + |
| <!-- |
| sys.BUILDARCH is set by the command line argument '-arch'. |
| The default value to "x86" |
| --> |
| <?if $(sys.BUILDARCH)="x86"?> |
| <?define Minimum_Version="100"?> |
| <?define Program_Files="ProgramFilesFolder"?> |
| <?define Product_Name="!(loc.ProductName32)"?> |
| @@ -58,17 +43,17 @@ |
| <?define Minimum_Version="200"?> |
| <?define Program_Files="ProgramFiles64Folder"?> |
| <?define Product_Name="!(loc.ProductName64)"?> |
| <?else?> |
| <?error Unsupported value of sys.BUILDARCH=$(sys.BUILDARCH)?> |
| <?endif?> |
| <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> |
| - <Product |
| + <Product |
| Name="$(var.Product_Name)" |
| Manufacturer="Eyeo GmbH" |
| Version="$(var.Product_Version)" |
| Language="!(loc.LANG)" Codepage="1252" |
| Id="$(var.Product_ID)" |
| UpgradeCode="3a8e3ab4-762d-4641-806e-2dccb953d73f"> |
| <Package Id="*" |
| @@ -81,17 +66,17 @@ |
| InstallScope="perMachine" InstallPrivileges="elevated" |
| /> |
| <!-- |
| The MajorUgrade tag allows us to specify the relationship between our version number and the one installed. |
| The attribute AllowDowngrades="yes" permits our version number to be lower than the one installed. |
| The attribute Disallow="no" (the default) permits our version number to be higher than the one installed. |
| For development releases (at least), we permit both cases. |
| For general releases, at present we also permit both. |
| - |
| + |
| The @Schedule attribute looks a little opaque. |
| Suffice it to say that it's the only option for scheduling where uninstallation of the previous version |
| and installation of the present version is _always_ going to act atomically. |
| It's a shame that you to even explicitly make that choice. |
| --> |
| <MajorUpgrade |
| AllowDowngrades="yes" |
| Schedule="afterInstallExecute" |
| @@ -171,22 +156,22 @@ |
| </Component> |
| <!-- |
| Testing the 32-bit install on a 64 bit OS will cause these entries to be written under Wow6432Node. |
| It should be transparent to the application code, but in case it's not ... |
| See http://stackoverflow.com/questions/1882024/wix-will-not-add-hklm-registry-setting-during-windows-7-install |
| --> |
| <Property Id="INSTALLFOLDER"> |
| <RegistrySearch Id="Registry_Read_Install_Folder" |
| - Root="HKLM" Key="Software\Adblock Plus for IE\0.8.0" |
| + Root="HKLM" Key="Software\Adblock Plus for IE\$(var.Product_Version)" |
| Name="InstallFolder" Type="raw"/> |
| </Property> |
| <Component Id="Install_Folder.component" Directory="INSTALLFOLDER"> |
| <RegistryKey Root="HKLM" Key="Software\Adblock Plus for IE"> |
| - <RegistryKey Key="0.8.0"> |
| + <RegistryKey Key="$(var.Product_Version)"> |
| <RegistryValue |
| Name="InstallFolder" Type="string" |
| Value="[INSTALLFOLDER]"/> |
| </RegistryKey> |
| </RegistryKey> |
| </Component> |
| @@ -227,17 +212,17 @@ |
| It's possible to write keys to HKEY_CURRENT_USER in a situation where that's not desirable, if needed. |
| --> |
| <ComponentGroup Id="Binaries" Directory="INSTALLFOLDER"> |
| <!-- |
| The 32-bit version of the DLL is included in both 32- and 64-bit installers. |
| We need an explicit value for attribute @Win64 so that the ARCH argument does not override its implicit value. |
| --> |
| <Component Id="AdblockPlus32.dll" Win64="no"> |
| - <File Id="AdblockPlus32.dll" Source="..\build\ia32\Release Production\AdblockPlus.dll" KeyPath="yes" Checksum="yes"> |
| + <File Id="AdblockPlus32.dll" Source="..\build\ia32\$(var.Configuration)\AdblockPlus.dll" KeyPath="yes" Checksum="yes"> |
| <?include dll_class.wxi ?> |
| </File> |
| <?include bho_registry_value.wxi ?> |
| </Component> |
| <!-- |
| The 64-bit version of the DLL is only included in the 64-bit installer. |
| We don't really need an explicit value for attribute @Win64, but it's there for resilience. |
| @@ -248,33 +233,33 @@ |
| so with two versions of IE, we need two identical registrations. |
| The 32-bit version on a 64-bit system will be registered under "Wow6432Node" translated keys, |
| while the 64-bit version will be under the keys as they appear in this source, not translated. |
| We don't need to put in the "Wow6432Node" registry key explicitly; |
| something in Windows Installer takes care of the mapping transparently. |
| --> |
| <?if $(sys.BUILDARCH)="x64"?> |
| <Component Id="AdblockPlus64.dll" Win64="yes"> |
| - <File Id="AdblockPlus64.dll" Source="..\build\x64\Release Production\AdblockPlusx64.dll" KeyPath="yes" Checksum="yes"> |
| + <File Id="AdblockPlus64.dll" Source="..\build\x64\$(var.Configuration)\AdblockPlusx64.dll" KeyPath="yes" Checksum="yes"> |
| <?include dll_class.wxi ?> |
| </File> |
| <?include bho_registry_value.wxi ?> |
| </Component> |
| <?endif?> |
| <!-- |
| The engine must go into the same directory as the DLL, since that location is searched explicitly (and uniquely). |
| --> |
| <?if $(sys.BUILDARCH)="x86"?> |
| <Component Id="AdblockPlusEngine.exe" Win64="no"> |
| - <File Id="AdblockPlusEngine.exe" Source="..\build\ia32\Release Production\AdblockPlusEngine.exe" KeyPath="yes" Checksum="yes"/> |
| + <File Id="AdblockPlusEngine.exe" Source="..\build\ia32\$(var.Configuration)\AdblockPlusEngine.exe" KeyPath="yes" Checksum="yes"/> |
| </Component> |
| <?elseif $(sys.BUILDARCH)="x64"?> |
| <Component Id="AdblockPlusEngine.exe" Win64="yes"> |
| - <File Id="AdblockPlusEngine.exe" Source="..\build\x64\Release Production\AdblockPlusEngine.exe" KeyPath="yes" Checksum="yes"/> |
| + <File Id="AdblockPlusEngine.exe" Source="..\build\x64\$(var.Configuration)\AdblockPlusEngine.exe" KeyPath="yes" Checksum="yes"/> |
| </Component> |
| <?endif?> |
| </ComponentGroup> |
| <!-- |
| The HTML_Tree component group contains all the files in the HTML folder. |
| Individual file entries within a single component group must all be in the same directory. |
| Also, ComponentGroup is not a valid child of ComponentGroup, so subdirectories are linked by reference. |