Left: | ||
Right: |
LEFT | RIGHT |
---|---|
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="afterInstallInitialize" | 141 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" | 142 AllowDowngrades="yes" |
139 /> | 143 /> |
140 | 144 |
141 <!--Remove Simple Adblock--> | 145 <!--Remove Simple Adblock--> |
142 <Property Id="SIMPLEADBLOCKDETECTED" Secure="yes"/> | 146 <Property Id="SIMPLEADBLOCKPRODUCTCODE" Secure="yes"/> |
143 <Upgrade Id="27D7C170-67AA-40D9-978F-5F14B4D0FEEE"> | 147 <Upgrade Id="27D7C170-67AA-40D9-978F-5F14B4D0FEEE"> |
144 <UpgradeVersion | 148 <UpgradeVersion |
145 Minimum="0.7.0.0" Maximum="99.0.0.0" | 149 Minimum="0.7.0.0" Maximum="99.0.0.0" |
146 Property="SIMPLEADBLOCKDETECTED" | 150 Property="SIMPLEADBLOCKPRODUCTCODE" |
147 IncludeMinimum="yes" IncludeMaximum="no" IgnoreRemoveFailure="no"/> | 151 IncludeMinimum="yes" IncludeMaximum="no" IgnoreRemoveFailure="no"/> |
148 </Upgrade> | 152 </Upgrade> |
149 <MediaTemplate EmbedCab="yes"/> | 153 <MediaTemplate EmbedCab="yes"/> |
150 | 154 |
151 <!-- | 155 <!-- |
152 User interface | 156 User interface |
153 --> | 157 --> |
154 <UIRef Id="custom_WixUI_InstallDir"/> | 158 <UIRef Id="custom_WixUI_InstallDir"/> |
155 <UIRef Id="WixUI_ErrorProgressText"/> | 159 <UIRef Id="WixUI_ErrorProgressText"/> |
156 <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/> | 160 <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/> |
(...skipping 22 matching lines...) Expand all Loading... | |
179 <CustomAction | 183 <CustomAction |
180 Id="Close_IE" | 184 Id="Close_IE" |
181 BinaryKey="installer_ca" | 185 BinaryKey="installer_ca" |
182 DllEntry="AbpCloseIe" | 186 DllEntry="AbpCloseIe" |
183 Return="check" | 187 Return="check" |
184 /> | 188 /> |
185 | 189 |
186 <CustomAction | 190 <CustomAction |
187 Id="CleanupSimpleAdblock" | 191 Id="CleanupSimpleAdblock" |
188 Directory="APP_DATA_FOLDER" | 192 Directory="APP_DATA_FOLDER" |
189 ExeCommand="cmd /C "rmdir /s /q ".\Simple Adblock""" | 193 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" | 194 Execute="deferred" |
191 Return="ignore" | 195 Return="ignore" |
192 HideTarget="no" | 196 HideTarget="no" |
193 Impersonate="no" /> | 197 Impersonate="no" /> |
194 <!-- | 198 <!-- |
195 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. |
196 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. |
197 --> | 201 --> |
198 <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"/> |
199 <InstallExecuteSequence> | 203 <InstallUISequence> |
200 <!-- | 204 <!-- |
201 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. |
202 --> | 206 --> |
203 <Custom | 207 <Custom |
204 Action="Close_IE" | 208 Action="Close_IE" |
205 After="LaunchConditions" | 209 After="LaunchConditions" |
206 /> | 210 /> |
211 </InstallUISequence> | |
207 | 212 |
213 <InstallExecuteSequence> | |
208 <Custom | 214 <Custom |
209 Action="CleanupSimpleAdblock" | 215 Action="CleanupSimpleAdblock" |
210 Before="InstallFinalize"><![CDATA[SIMPLEADBLOCKDETECTED <> ""]]></Custom > | 216 Before="InstallFinalize"><![CDATA[SIMPLEADBLOCKPRODUCTCODE <> ""]]></Cus tom> |
211 </InstallExecuteSequence> | 217 </InstallExecuteSequence> |
212 | 218 |
213 <!-- | 219 <!-- |
214 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. |
215 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. |
216 --> | 222 --> |
217 <Feature Id="ProductFeature" | 223 <Feature Id="ProductFeature" |
218 Title="!(loc.Title)" Description="!(loc.UI_Description)" | 224 Title="!(loc.Title)" Description="!(loc.UI_Description)" |
219 Display="hidden"> | 225 Display="hidden"> |
220 <ComponentGroupRef Id="Installation_Folders"/> | 226 <ComponentGroupRef Id="Installation_Folders"/> |
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
832 | 838 |
833 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. |
834 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. |
835 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, |
836 not a permanent solution. | 842 not a permanent solution. |
837 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. |
838 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 |
839 --> | 845 --> |
840 <ComponentGroup Id="INI_Files"> | 846 <ComponentGroup Id="INI_Files"> |
841 <ComponentRef Id="ini_settings.ini"/> | 847 <ComponentRef Id="ini_settings.ini"/> |
842 <ComponentRef Id="simpleAdblockPrefs"/> | 848 <ComponentRef Id="simpleAdblockMark"/> |
843 </ComponentGroup> | 849 </ComponentGroup> |
844 <DirectoryRef Id="ABP_APPDATA_FOLDER"> | 850 <DirectoryRef Id="ABP_APPDATA_FOLDER"> |
845 <Directory Id="ini" FileSource="$(var.plugin_dir)\files"> | 851 <Directory Id="ini" FileSource="$(var.plugin_dir)\files"> |
846 <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"> |
847 <File Name="settings.ini"/> | 853 <File Name="settings.ini"/> |
848 </Component> | 854 </Component> |
849 <Component Id="simpleAdblockPrefs" Guid="cc30c3b0-c713-01e2-7b8b-1800200 c9a65"> | 855 <Component Id="simpleAdblockMark" Guid="cc30c3b0-c713-01e2-7b8b-1800200c 9a65"> |
850 <Condition><![CDATA[SIMPLEADBLOCKDETECTED <> ""]]></Condition> | 856 <Condition><![CDATA[SIMPLEADBLOCKPRODUCTCODE <> ""]]></Condition> |
851 <File Name="prefs.json"/> | 857 <RegistryKey Root="HKCU" Key="Software\Adblock Plus for IE"> |
858 <RegistryKey Key="ConvertedFrom"> | |
859 <RegistryValue Name="name" Type="string" Value="simpleadblock"/> | |
860 </RegistryKey> | |
861 </RegistryKey> | |
852 </Component> | 862 </Component> |
853 </Directory> | 863 </Directory> |
854 </DirectoryRef> | 864 </DirectoryRef> |
855 | 865 |
856 <?include ../installer-lib/custom-i18n.wxi ?> | 866 <?include ../installer-lib/custom-i18n.wxi ?> |
857 <?include ../custom-action/close_ie.wxi ?> | 867 <?include ../custom-action/close_ie.wxi ?> |
858 </Product> | 868 </Product> |
859 </Wix> | 869 </Wix> |
LEFT | RIGHT |