| 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 code is 2738.</quote> | 5 <quote>LGHT0217 : Error executing ICE action 'ICExx' [...] The error code 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 Inst aller sees it. | 9 which means this source implicitly declares some insofar as the Windows Inst aller sees it. |
| 10 These errors are benign and can be avoided by some fiddling with the registry on the development machine. | 10 These errors are benign and can be avoided by some fiddling with the registry on the development machine. |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 127 version number and the one installed. The attribute Disallow="no" is | 127 version number and the one installed. The attribute Disallow="no" is |
| 128 implied and allows major upgrades to be performed. Downgrades aren't | 128 implied and allows major upgrades to be performed. Downgrades aren't |
| 129 allowed by default. | 129 allowed by default. |
| 130 | 130 |
| 131 The @Schedule attribute looks a little opaque. | 131 The @Schedule attribute looks a little opaque. |
| 132 Suffice it to say that it's the only option for scheduling where uninstall ation of the previous version | 132 Suffice it to say that it's the only option for scheduling where uninstall ation of the previous version |
| 133 and installation of the present version is _always_ going to act atomica lly. | 133 and installation of the present version is _always_ going to act atomica lly. |
| 134 It's a shame that you to even explicitly make that choice. | 134 It's a shame that you to even explicitly make that choice. |
| 135 --> | 135 --> |
| 136 <MajorUpgrade | 136 <MajorUpgrade |
| 137 Schedule="afterInstallExecute" | 137 Schedule="afterInstallInitialize" |
|
Eric
2015/03/27 12:51:45
Please see the comment immediately about about why
Oleksandr
2015/04/16 09:58:09
ABP for IE and SimpleAdblock have the same CLSID w
sergei
2015/04/22 10:37:08
"afterInstallInitialize" still implies that uninst
Oleksandr
2015/04/24 11:50:32
SimpleAdblock uninstall removes the registry keys
| |
| 138 AllowDowngrades="yes" | 138 AllowDowngrades="yes" |
| 139 /> | 139 /> |
| 140 | |
| 141 <!--Remove Simple Adblock--> | |
| 142 <Property Id="SIMPLEADBLOCKDETECTED" Secure="yes"/> | |
| 143 <Upgrade Id="27D7C170-67AA-40D9-978F-5F14B4D0FEEE"> | |
| 144 <UpgradeVersion | |
| 145 Minimum="0.7.0.0" Maximum="99.0.0.0" | |
| 146 Property="SIMPLEADBLOCKDETECTED" | |
| 147 IncludeMinimum="yes" IncludeMaximum="no" IgnoreRemoveFailure="no"/> | |
| 148 </Upgrade> | |
| 140 <MediaTemplate EmbedCab="yes"/> | 149 <MediaTemplate EmbedCab="yes"/> |
| 141 | 150 |
| 142 <!-- | 151 <!-- |
| 143 User interface | 152 User interface |
| 144 --> | 153 --> |
| 145 <UIRef Id="custom_WixUI_InstallDir"/> | 154 <UIRef Id="custom_WixUI_InstallDir"/> |
| 146 <UIRef Id="WixUI_ErrorProgressText"/> | 155 <UIRef Id="WixUI_ErrorProgressText"/> |
| 147 <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/> | 156 <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/> |
| 148 | 157 |
| 149 <!-- | 158 <!-- |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 166 Attribute "Return" sets the "Custom Action Return Processing Options" to z ero, | 175 Attribute "Return" sets the "Custom Action Return Processing Options" to z ero, |
| 167 which indicates to block the installer until the action completes | 176 which indicates to block the installer until the action completes |
| 168 and to treat a non-zero return value from the action as an error. | 177 and to treat a non-zero return value from the action as an error. |
| 169 --> | 178 --> |
| 170 <CustomAction | 179 <CustomAction |
| 171 Id="Close_IE" | 180 Id="Close_IE" |
| 172 BinaryKey="installer_ca" | 181 BinaryKey="installer_ca" |
| 173 DllEntry="AbpCloseIe" | 182 DllEntry="AbpCloseIe" |
| 174 Return="check" | 183 Return="check" |
| 175 /> | 184 /> |
| 185 | |
| 186 <CustomAction | |
| 187 Id="CleanupSimpleAdblock" | |
| 188 Directory="APP_DATA_FOLDER" | |
| 189 ExeCommand="cmd /C "rmdir /s /q ".\Simple Adblock""" | |
|
Eric
2015/03/27 12:51:45
Using "." for current directory is likely not to b
Oleksandr
2015/04/16 09:58:09
Why not? We are launching in APP_DATA_FOLDER
| |
| 190 Execute="deferred" | |
| 191 Return="ignore" | |
| 192 HideTarget="no" | |
| 193 Impersonate="no" /> | |
| 176 <!-- | 194 <!-- |
| 177 We require a 32-bit DLL for the 32-bit installer, and likewise for 64-bit. | 195 We require a 32-bit DLL for the 32-bit installer, and likewise for 64-bit. |
| 178 The 64-bit Close_IE action needs to examine 64-bit processes on the system , which are invisible to 32-bit processes. | 196 The 64-bit Close_IE action needs to examine 64-bit processes on the system , which are invisible to 32-bit processes. |
| 179 --> | 197 --> |
| 180 <Binary Id="installer_ca" SourceFile="$(var.installer_dir)\build\$(var.build _dir)\$(var.CA_Configuration)\installer-ca.dll"/> | 198 <Binary Id="installer_ca" SourceFile="$(var.installer_dir)\build\$(var.build _dir)\$(var.CA_Configuration)\installer-ca.dll"/> |
| 181 <InstallExecuteSequence> | 199 <InstallExecuteSequence> |
| 182 <!-- | 200 <!-- |
| 183 The LaunchConditions action occurs near the beginning, before any of the expensive operations. | 201 The LaunchConditions action occurs near the beginning, before any of the expensive operations. |
| 184 --> | 202 --> |
| 185 <Custom | 203 <Custom |
| 186 Action="Close_IE" | 204 Action="Close_IE" |
| 187 After="LaunchConditions" | 205 After="LaunchConditions" |
| 188 /> | 206 /> |
| 189 | 207 |
| 208 <Custom | |
| 209 Action="CleanupSimpleAdblock" | |
| 210 Before="InstallFinalize"><![CDATA[SIMPLEADBLOCKDETECTED <> ""]]></Custom > | |
| 190 </InstallExecuteSequence> | 211 </InstallExecuteSequence> |
| 191 | 212 |
| 192 <!-- | 213 <!-- |
| 193 We have only a single feature, since there aren't any optional parts. | 214 We have only a single feature, since there aren't any optional parts. |
| 194 The display is hidden for the same reason; there's nothing to choose from. | 215 The display is hidden for the same reason; there's nothing to choose from. |
| 195 --> | 216 --> |
| 196 <Feature Id="ProductFeature" | 217 <Feature Id="ProductFeature" |
| 197 Title="!(loc.Title)" Description="!(loc.UI_Description)" | 218 Title="!(loc.Title)" Description="!(loc.UI_Description)" |
| 198 Display="hidden"> | 219 Display="hidden"> |
| 199 <ComponentGroupRef Id="Installation_Folders"/> | 220 <ComponentGroupRef Id="Installation_Folders"/> |
| (...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 811 | 832 |
| 812 The settings.ini file should not be installed this way, since it contains user-generated data. | 833 The settings.ini file should not be installed this way, since it contains user-generated data. |
| 813 A component in Windows Installer represents a fixed piece of data with the MSI, not a changing one. | 834 A component in Windows Installer represents a fixed piece of data with the MSI, not a changing one. |
| 814 The present method of making settings.ini a component is simply an expedie nt for the present, | 835 The present method of making settings.ini a component is simply an expedie nt for the present, |
| 815 not a permanent solution. | 836 not a permanent solution. |
| 816 The correct solution requires the application to manage this file; the ins taller can't do it right. | 837 The correct solution requires the application to manage this file; the ins taller can't do it right. |
| 817 See http://stackoverflow.com/questions/357911/manage-configuration-files-w ith-wix | 838 See http://stackoverflow.com/questions/357911/manage-configuration-files-w ith-wix |
| 818 --> | 839 --> |
| 819 <ComponentGroup Id="INI_Files"> | 840 <ComponentGroup Id="INI_Files"> |
| 820 <ComponentRef Id="ini_settings.ini"/> | 841 <ComponentRef Id="ini_settings.ini"/> |
| 842 <ComponentRef Id="simpleAdblockPrefs"/> | |
| 821 </ComponentGroup> | 843 </ComponentGroup> |
| 822 <DirectoryRef Id="ABP_APPDATA_FOLDER"> | 844 <DirectoryRef Id="ABP_APPDATA_FOLDER"> |
| 823 <Directory Id="ini" FileSource="$(var.plugin_dir)\files"> | 845 <Directory Id="ini" FileSource="$(var.plugin_dir)\files"> |
| 824 <Component Id="ini_settings.ini" Guid="dc30c3b0-d713-11e2-8b8b-0800200c9 a66"> | 846 <Component Id="ini_settings.ini" Guid="dc30c3b0-d713-11e2-8b8b-0800200c9 a66"> |
| 825 <File Name="settings.ini"/> | 847 <File Name="settings.ini"/> |
| 826 </Component> | 848 </Component> |
| 849 <Component Id="simpleAdblockPrefs" Guid="cc30c3b0-c713-01e2-7b8b-1800200 c9a65"> | |
| 850 <Condition><![CDATA[SIMPLEADBLOCKDETECTED <> ""]]></Condition> | |
| 851 <File Name="prefs.json"/> | |
| 852 </Component> | |
| 827 </Directory> | 853 </Directory> |
| 828 </DirectoryRef> | 854 </DirectoryRef> |
| 829 | 855 |
| 830 <?include ../installer-lib/custom-i18n.wxi ?> | 856 <?include ../installer-lib/custom-i18n.wxi ?> |
| 831 <?include ../custom-action/close_ie.wxi ?> | 857 <?include ../custom-action/close_ie.wxi ?> |
| 832 </Product> | 858 </Product> |
| 833 </Wix> | 859 </Wix> |
| OLD | NEW |