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 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 Languages="$(var.SupportedLanguages)" | 121 Languages="$(var.SupportedLanguages)" |
122 Compressed="yes" | 122 Compressed="yes" |
123 InstallScope="perMachine" InstallPrivileges="elevated" | 123 InstallScope="perMachine" InstallPrivileges="elevated" |
124 /> | 124 /> |
125 <!-- | 125 <!-- |
126 The MajorUpgrade tag allows us to specify the relationship between our | 126 The MajorUpgrade tag allows us to specify the relationship between our |
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 default value for @Schedule attribute is afterInstallValidate. |
132 Suffice it to say that it's the only option for scheduling where uninstall
ation of the previous version | 132 If we used that it would be possible to endup in a state when one |
133 and installation of the present version is _always_ going to act atomica
lly. | 133 version is uninstalled and another is not installed. We use |
134 It's a shame that you to even explicitly make that choice. | 134 afterInstallInitialize here and not afterInstallExecute since we need to |
| 135 make sure we uninstall SimpleAdblock *before* we install ABP. |
| 136 SimpleAdblock and ABP for IE are using the same CLSID and SimpleAdblock's |
| 137 uninstallation is running DllUnregisterServer which removes the CLSID |
| 138 from the registry. |
135 --> | 139 --> |
136 <MajorUpgrade | 140 <MajorUpgrade |
137 Schedule="afterInstallExecute" | 141 Schedule="afterInstallInitialize" |
138 AllowDowngrades="yes" | 142 AllowDowngrades="yes" |
139 /> | 143 /> |
| 144 |
| 145 <!--Remove Simple Adblock--> |
| 146 <Property Id="SIMPLEADBLOCKPRODUCTCODE" Secure="yes"/> |
| 147 <Upgrade Id="27D7C170-67AA-40D9-978F-5F14B4D0FEEE"> |
| 148 <UpgradeVersion |
| 149 Minimum="0.7.0.0" Maximum="99.0.0.0" |
| 150 Property="SIMPLEADBLOCKPRODUCTCODE" |
| 151 IncludeMinimum="yes" IncludeMaximum="no" IgnoreRemoveFailure="no"/> |
| 152 </Upgrade> |
140 <MediaTemplate EmbedCab="yes"/> | 153 <MediaTemplate EmbedCab="yes"/> |
141 | 154 |
142 <!-- | 155 <!-- |
143 User interface | 156 User interface |
144 --> | 157 --> |
145 <UIRef Id="custom_WixUI_InstallDir"/> | 158 <UIRef Id="custom_WixUI_InstallDir"/> |
146 <UIRef Id="WixUI_ErrorProgressText"/> | 159 <UIRef Id="WixUI_ErrorProgressText"/> |
147 <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/> | 160 <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/> |
148 | 161 |
149 <!-- | 162 <!-- |
(...skipping 16 matching lines...) Expand all Loading... |
166 Attribute "Return" sets the "Custom Action Return Processing Options" to z
ero, | 179 Attribute "Return" sets the "Custom Action Return Processing Options" to z
ero, |
167 which indicates to block the installer until the action completes | 180 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. | 181 and to treat a non-zero return value from the action as an error. |
169 --> | 182 --> |
170 <CustomAction | 183 <CustomAction |
171 Id="Close_IE" | 184 Id="Close_IE" |
172 BinaryKey="installer_ca" | 185 BinaryKey="installer_ca" |
173 DllEntry="AbpCloseIe" | 186 DllEntry="AbpCloseIe" |
174 Return="check" | 187 Return="check" |
175 /> | 188 /> |
| 189 |
| 190 <CustomAction |
| 191 Id="CleanupSimpleAdblock" |
| 192 Directory="APP_DATA_FOLDER" |
| 193 ExeCommand="cmd /C "rmdir /s /q ".\Simple Adblock"""
|
| 194 Execute="deferred" |
| 195 Return="ignore" |
| 196 HideTarget="no" |
| 197 Impersonate="no" /> |
176 <!-- | 198 <!-- |
177 We require a 32-bit DLL for the 32-bit installer, and likewise for 64-bit. | 199 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. | 200 The 64-bit Close_IE action needs to examine 64-bit processes on the system
, which are invisible to 32-bit processes. |
179 --> | 201 --> |
180 <Binary Id="installer_ca" SourceFile="$(var.installer_dir)\build\$(var.build
_dir)\$(var.CA_Configuration)\installer-ca.dll"/> | 202 <Binary Id="installer_ca" SourceFile="$(var.installer_dir)\build\$(var.build
_dir)\$(var.CA_Configuration)\installer-ca.dll"/> |
181 <InstallUISequence> | 203 <InstallUISequence> |
182 <!-- | 204 <!-- |
183 The LaunchConditions action occurs near the beginning, before any of the
expensive operations. | 205 The LaunchConditions action occurs near the beginning, before any of the
expensive operations. |
184 --> | 206 --> |
185 <Custom | 207 <Custom |
186 Action="Close_IE" | 208 Action="Close_IE" |
187 After="LaunchConditions" | 209 After="LaunchConditions" |
188 /> | 210 /> |
189 </InstallUISequence> | 211 </InstallUISequence> |
| 212 |
| 213 <InstallExecuteSequence> |
| 214 <Custom |
| 215 Action="CleanupSimpleAdblock" |
| 216 Before="InstallFinalize"><![CDATA[SIMPLEADBLOCKPRODUCTCODE <> ""]]></Cus
tom> |
| 217 </InstallExecuteSequence> |
190 | 218 |
191 <!-- | 219 <!-- |
192 We have only a single feature, since there aren't any optional parts. | 220 We have only a single feature, since there aren't any optional parts. |
193 The display is hidden for the same reason; there's nothing to choose from. | 221 The display is hidden for the same reason; there's nothing to choose from. |
194 --> | 222 --> |
195 <Feature Id="ProductFeature" | 223 <Feature Id="ProductFeature" |
196 Title="!(loc.Title)" Description="!(loc.UI_Description)" | 224 Title="!(loc.Title)" Description="!(loc.UI_Description)" |
197 Display="hidden"> | 225 Display="hidden"> |
198 <ComponentGroupRef Id="Installation_Folders"/> | 226 <ComponentGroupRef Id="Installation_Folders"/> |
199 <ComponentGroupRef Id="Binaries"/> | 227 <ComponentGroupRef Id="Binaries"/> |
(...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
810 | 838 |
811 The settings.ini file should not be installed this way, since it contains
user-generated data. | 839 The settings.ini file should not be installed this way, since it contains
user-generated data. |
812 A component in Windows Installer represents a fixed piece of data with the
MSI, not a changing one. | 840 A component in Windows Installer represents a fixed piece of data with the
MSI, not a changing one. |
813 The present method of making settings.ini a component is simply an expedie
nt for the present, | 841 The present method of making settings.ini a component is simply an expedie
nt for the present, |
814 not a permanent solution. | 842 not a permanent solution. |
815 The correct solution requires the application to manage this file; the ins
taller can't do it right. | 843 The correct solution requires the application to manage this file; the ins
taller can't do it right. |
816 See http://stackoverflow.com/questions/357911/manage-configuration-files-w
ith-wix | 844 See http://stackoverflow.com/questions/357911/manage-configuration-files-w
ith-wix |
817 --> | 845 --> |
818 <ComponentGroup Id="INI_Files"> | 846 <ComponentGroup Id="INI_Files"> |
819 <ComponentRef Id="ini_settings.ini"/> | 847 <ComponentRef Id="ini_settings.ini"/> |
| 848 <ComponentRef Id="simpleAdblockPrefs"/> |
820 </ComponentGroup> | 849 </ComponentGroup> |
821 <DirectoryRef Id="ABP_APPDATA_FOLDER"> | 850 <DirectoryRef Id="ABP_APPDATA_FOLDER"> |
822 <Directory Id="ini" FileSource="$(var.plugin_dir)\files"> | 851 <Directory Id="ini" FileSource="$(var.plugin_dir)\files"> |
823 <Component Id="ini_settings.ini" Guid="dc30c3b0-d713-11e2-8b8b-0800200c9
a66"> | 852 <Component Id="ini_settings.ini" Guid="dc30c3b0-d713-11e2-8b8b-0800200c9
a66"> |
824 <File Name="settings.ini"/> | 853 <File Name="settings.ini"/> |
825 </Component> | 854 </Component> |
| 855 <Component Id="simpleAdblockPrefs" Guid="cc30c3b0-c713-01e2-7b8b-1800200
c9a65"> |
| 856 <Condition><![CDATA[SIMPLEADBLOCKPRODUCTCODE <> ""]]></Condition> |
| 857 <File Name="prefs.json"/> |
| 858 </Component> |
826 </Directory> | 859 </Directory> |
827 </DirectoryRef> | 860 </DirectoryRef> |
828 | 861 |
829 <?include ../installer-lib/custom-i18n.wxi ?> | 862 <?include ../installer-lib/custom-i18n.wxi ?> |
830 <?include ../custom-action/close_ie.wxi ?> | 863 <?include ../custom-action/close_ie.wxi ?> |
831 </Product> | 864 </Product> |
832 </Wix> | 865 </Wix> |
OLD | NEW |