OLD | NEW |
| (Empty) |
1 <?xml version='1.0' encoding='windows-1252'?> | |
2 <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'> | |
3 <?define CompanyFullName = 'Google, Inc.'?> | |
4 <?define Copyright = 'Copyright 2007-2010 Google Inc.'?> | |
5 | |
6 <Product | |
7 Id='$(var.MsiProductId)' | |
8 Name='$(var.ProductName)' | |
9 Language='1033' | |
10 Codepage='1252' | |
11 UpgradeCode='$(var.MsiUpgradeCode)' | |
12 Version='$(var.ProductVersion)' | |
13 Manufacturer='$(var.CompanyFullName)'> | |
14 | |
15 <Package | |
16 Id='*' | |
17 Description='$(var.ProductName) Installer' | |
18 Comments='$(var.Copyright)' | |
19 Manufacturer='$(var.CompanyFullName)' | |
20 Languages='1033' | |
21 SummaryCodepage='1252' | |
22 InstallerVersion='150' | |
23 InstallPrivileges='elevated' | |
24 Compressed='yes' /> | |
25 | |
26 <Upgrade Id='$(var.MsiUpgradeCode)'> | |
27 <UpgradeVersion Property='UPGRADING' | |
28 OnlyDetect='no' | |
29 Minimum='0.0.0.0' IncludeMinimum='yes' | |
30 Maximum='$(var.ProductVersion)' IncludeMaximum='no' /> | |
31 <UpgradeVersion Property='NEWERVERSIONDETECTED' | |
32 OnlyDetect='yes' | |
33 Minimum='$(var.ProductVersion)' IncludeMinimum='yes' /> | |
34 </Upgrade> | |
35 | |
36 <!-- Per-machine installation - make sure product appears for all users. --> | |
37 <Property Id='ALLUSERS' Value='1' /> | |
38 | |
39 <?ifdef $(var.ProductIcon)?> | |
40 <!-- If var.ProductIcon is defined, use that as an icon in the ARP | |
41 dialog, otherwise rely on the ARP dialog's heuristics: | |
42 http://blogs.msdn.com/oldnewthing/archive/2004/07/09/178342.aspx --> | |
43 <Icon Id='icon.ico' SourceFile='$(var.ProductIcon)'/> | |
44 <Property Id='ARPPRODUCTICON' Value='icon.ico' /> | |
45 <?endif?> | |
46 | |
47 <!-- ARPNOMODIFY does two things: | |
48 1) Removes the 'Modify' button from the ARP dialog. | |
49 2) Causes the 'Remove' command to invoke msiexec /X instead of /I | |
50 (the intent being that WITH a Modify button, clicking either | |
51 Modify or Remove command will launch your installer UI). --> | |
52 <Property Id='ARPNOMODIFY' Value='1' /> | |
53 | |
54 <!-- Find the uninstall string to be used for the product. Only used for | |
55 uninstallation. --> | |
56 <Property Id='UNINSTALLCMDLINE'> | |
57 <RegistrySearch Id='UninstallCmdSearch' | |
58 Root='HKLM' | |
59 Type='raw' | |
60 Key='Software\Google\Update\ClientState\$(var.ProductGuid)
' | |
61 Name='UninstallString'/> | |
62 </Property> | |
63 <Property Id='UNINSTALLCMDARGS'> | |
64 <RegistrySearch Id='UninstallArgSearch' | |
65 Root='HKLM' | |
66 Type='raw' | |
67 Key='Software\Google\Update\ClientState\$(var.ProductGuid)
' | |
68 Name='UninstallArguments'/> | |
69 </Property> | |
70 | |
71 <UI> | |
72 <Error Id='4000'>A newer version of the $(var.ProductName) enterprise inst
aller is already installed.</Error> | |
73 </UI> | |
74 | |
75 <!-- Eliminates "warning LGHT1076 : ICE71: The Media table has no entries." | |
76 --> | |
77 <Media Id='1' /> | |
78 | |
79 <Directory Id='TARGETDIR' Name='SourceDir'> | |
80 <Directory Id='ProgramFilesFolder'> | |
81 </Directory> | |
82 </Directory> | |
83 | |
84 <Binary Id='$(var.ProductNameLegalIdentifier)Installer' | |
85 SourceFile='$(var.ProductInstallerPath)' /> | |
86 | |
87 <Binary Id='ShowInstallerResultUIStringDll' | |
88 SourceFile='$(var.ShowErrorCADll)' /> | |
89 | |
90 <Feature Id='Complete' Level='1'> | |
91 <ComponentRef Id='ComponentGoogleUpdate' /> | |
92 </Feature> | |
93 | |
94 <CustomAction Id='NewerVersionError' Error='4000'/> | |
95 | |
96 <CustomAction Id='SetInstallerInstallCommandProperty' | |
97 Property='FullProductInstallerInstallCommand' | |
98 Value='$(var.ProductInstallerInstallCommand)' | |
99 Execute='immediate' | |
100 Return='check' /> | |
101 <CustomAction | |
102 Id='AppendDisableUpdateRegistrationArgToInstallerInstallCommandProperty' | |
103 Property='FullProductInstallerInstallCommand' | |
104 Value='[FullProductInstallerInstallCommand] | |
105 $(var.ProductInstallerDisableUpdateRegistrationArg)' | |
106 Execute='immediate' | |
107 Return='check' /> | |
108 <!-- Send the ProductGuid to the ShowInstallerResultUIString custom action. | |
109 The value is accessed through the "CustomActionData" property from | |
110 within the action itself. --> | |
111 <CustomAction Id='SetAppGuidProperty' | |
112 Property='ShowInstallerResultUIString' | |
113 Value='$(var.ProductGuid)' /> | |
114 | |
115 <!-- A custom action to be executed on rollback to log and display the | |
116 LastInstallerResultUIString. --> | |
117 <CustomAction Id='ShowInstallerResultUIString' | |
118 BinaryKey='ShowInstallerResultUIStringDll' | |
119 DllEntry='ShowInstallerResultUIString' | |
120 Execute='rollback' | |
121 Impersonate='no' /> | |
122 | |
123 <CustomAction Id='Install$(var.ProductNameLegalIdentifier)' | |
124 BinaryKey='$(var.ProductNameLegalIdentifier)Installer' | |
125 Impersonate='no' | |
126 Execute='deferred' | |
127 ExeCommand='[FullProductInstallerInstallCommand]' | |
128 Return='check' /> | |
129 <CustomAction Id='CallUninstaller.SetProperty' | |
130 Property='UninstallCmd' | |
131 Value='[UNINSTALLCMDLINE] $(var.ProductUninstallerAdditionalArgs)' | |
132 Execute='immediate' | |
133 Return='check' /> | |
134 <CustomAction Id='CallUninstallerArgs.SetProperty' | |
135 Property='UninstallCmdArgs' | |
136 Value='[UNINSTALLCMDARGS]' | |
137 Execute='immediate' | |
138 Return='check' /> | |
139 <CustomAction Id='CallUninstaller' | |
140 Property='UninstallCmd' | |
141 ExeCommand='[UninstallCmdArgs] $(var.ProductUninstallerAdditionalArgs)' | |
142 Impersonate='no' | |
143 Execute='deferred' | |
144 Return='check' /> | |
145 | |
146 <InstallExecuteSequence> | |
147 <RemoveExistingProducts After='InstallValidate' /> | |
148 | |
149 <Custom Action='NewerVersionError' After='FindRelatedProducts'> | |
150 NEWERVERSIONDETECTED | |
151 </Custom> | |
152 | |
153 <!-- Any operations that rely on values, such as brand and usagestats, in | |
154 ClientState should not run until after | |
155 InstallGoogleUpdateAndRegister. This is sequenced before InstallFiles | |
156 so that can be used as well. | |
157 It is also advisable to write the Clients key after this point so | |
158 the specific values in the installer will replace the ones Google | |
159 Update writes as part of /registerproduct. --> | |
160 <!-- The app's uninstaller MUST delete the entire Clients key even if | |
161 values it didn't write are present. The Google Update Fragment writes | |
162 "pv" and "name" when it calls /registerproduct. While apps should | |
163 always write and cleanup "name", not all do and this can cause | |
164 problems.--> | |
165 <!-- TODO(omaha): Support Rollback? Need to determine whether Product | |
166 was installed before installing it and only add the rollback then. | |
167 <Custom Action='Rollback$(var.ProductNameLegalIdentifier)' | |
168 After='InstallFiles'> | |
169 (($ComponentGoogleUpdate>2) OR REINSTALL) AND (NOT $(var.ProductNameLega
lIdentifier)_INSTALLED) | |
170 </Custom> | |
171 Change After='InstallFiles' below to | |
172 After='Rollback$(var.ProductNameLegalIdentifier)'. --> | |
173 <Custom Action='SetInstallerInstallCommandProperty' | |
174 After='InstallFiles'> | |
175 (($ComponentGoogleUpdate>2) OR REINSTALL) | |
176 </Custom> | |
177 <Custom Action='AppendDisableUpdateRegistrationArgToInstallerInstallComman
dProperty' | |
178 After='SetInstallerInstallCommandProperty'> | |
179 (($ComponentGoogleUpdate>2) OR REINSTALL) AND DISABLE_UPDATES | |
180 </Custom> | |
181 <Custom Action='SetAppGuidProperty' | |
182 After='AppendDisableUpdateRegistrationArgToInstallerInstallCommand
Property'> | |
183 (($ComponentGoogleUpdate>2) OR REINSTALL) | |
184 </Custom> | |
185 <Custom Action='ShowInstallerResultUIString' | |
186 After='SetAppGuidProperty'> | |
187 (($ComponentGoogleUpdate>2) OR REINSTALL) | |
188 </Custom> | |
189 <Custom Action='Install$(var.ProductNameLegalIdentifier)' | |
190 After='ShowInstallerResultUIString'> | |
191 (($ComponentGoogleUpdate>2) OR REINSTALL) | |
192 </Custom> | |
193 | |
194 <Custom Action='CallUninstallerArgs.SetProperty' | |
195 Before='CallUninstaller.SetProperty'> | |
196 $ComponentGoogleUpdate=2 | |
197 </Custom> | |
198 <Custom Action='CallUninstaller.SetProperty' | |
199 Before='CallUninstaller'> | |
200 $ComponentGoogleUpdate=2 | |
201 </Custom> | |
202 <Custom Action='CallUninstaller' | |
203 Before='RemoveFiles'> | |
204 $ComponentGoogleUpdate=2 | |
205 </Custom> | |
206 | |
207 </InstallExecuteSequence> | |
208 | |
209 </Product> | |
210 </Wix> | |
OLD | NEW |