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. |