VirtualBox

source: vbox/trunk/src/VBox/Installer/win/VirtualBox.wxs@ 32953

Last change on this file since 32953 was 31922, checked in by vboxsync, 14 years ago

OSE build fix

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 43.1 KB
Line 
1<?xml version="1.0"?>
2<!--
3 VirtualBox Windows Installation Script (WiX)
4
5 Copyright (C) 2006-2010 Oracle Corporation
6
7 This file is part of VirtualBox Open Source Edition (OSE), as
8 available from http://www.virtualbox.org. This file is free software;
9 you can redistribute it and/or modify it under the terms of the GNU
10 General Public License (GPL) as published by the Free Software
11 Foundation, in version 2 as it comes in the "COPYING" file of the
12 VirtualBox OSE distribution. VirtualBox OSE is distributed in the
13 hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
14-->
15
16<?define Property_RegKey ="Software\$(env.VBOX_VENDOR_SHORT)\VirtualBox" ?>
17<?define Property_Version = "$(env.VBOX_VERSION_STRING)" ?>
18<?define Property_Upgrade = "yes" ?>
19
20<?if $(env.BUILD_TARGET_ARCH) = "amd64" ?>
21 <?define Property_ProgramFiles = "ProgramFiles64Folder" ?>
22 <?define Property_Platform = "x64" ?>
23 <?define Property_Win64 = "yes" ?>
24
25<?if $(env.VBOX_SIGNING_MODE) != none ?>
26 <?define Property_DriverLegacy = "no" ?>
27<?else ?>
28 <?define Property_DriverLegacy = "yes" ?>
29<?endif ?>
30
31<?else ?>
32 <?define Property_ProgramFiles = "ProgramFilesFolder" ?>
33 <?define Property_Platform = "Intel" ?>
34 <?define Property_Win64 = "no" ?>
35
36<?if $(env.VBOX_SIGNING_MODE) != none ?>
37 <!-- Note: Settings this to 'no' breaks win2k installs (!) -->
38 <?define Property_DriverLegacy = "yes" ?>
39<?else ?>
40 <?define Property_DriverLegacy = "yes" ?>
41<?endif ?>
42
43<?endif ?>
44
45<?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
46 <?define Property_DiskIdCommon = "2" ?>
47<?else ?>
48 <?define Property_DiskIdCommon = "1" ?>
49<?endif ?>
50
51<Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi">
52
53 <!-- Note: GUIDs in WiX *must* be uppercase! -->
54 <!-- Always include an upgrade ID or otherwise upgrade installation will not be possible. When doing
55 a major upgrade (more than just fixing a few files) change the product GUID. -->
56
57 <!-- Update / Upgrade policies:
58 Update Type Package Code Product Version Product Code Upgrade Code
59 Small update change don't change don't change don't change
60 Minor update change change don't change don't change
61 Major upgrade change change change don't change -->
62
63 <!-- Old product ID: <Product Id="B59FE77B-738F-4f1c-AB48-3104895AF676"
64 Old upgrade code of innotek: UpgradeCode="F5FFAEBF-97AE-4038-8F91-4DE719456127" -->
65
66 <Product Id="????????-????-????-????-????????????"
67 UpgradeCode="C4BAD770-BFE8-4D2C-A592-693028A7215B"
68 Name="$(env.VBOX_PRODUCT) $(env.VBOX_VERSION_STRING)"
69 Language="$(loc.LANG)"
70 Codepage="1252"
71 Version="$(var.Property_Version)"
72 Manufacturer="$(env.VBOX_VENDOR)">
73
74 <!-- Package GUIDs must be different for each package. The "???" directs WiX to create one. -->
75 <Package Id="????????-????-????-????-????????????" Keywords="Installer"
76 Description="$(env.VBOX_PRODUCT) $(var.Property_Version) installation package"
77 Comments="$(env.VBOX_PRODUCT) installation package"
78 Manufacturer="$(env.VBOX_VENDOR)"
79 InstallerVersion="200"
80 Compressed="yes"
81 InstallPrivileges="elevated"
82 Platforms="$(var.Property_Platform)"/>
83
84 <!-- *************************** Upgrade packages only ******************************* -->
85 <!-- Minimum and Maximum specify the range of versions we are supposed to update with this upgrade.
86 IncludeMaximum and IncludeMinimum specify whether the bound value is actually included in the range or not
87 (IncludeMaximum = yes meaning to find versions below or equal to the version specified in Maximum while
88 IncludeMaximum = no only finds those below the Maximum).
89 OnlyDetect tells the installer not to remove the previous product. This is useful as long as we
90 only change files in the package. -->
91
92 <Upgrade Id="C4BAD770-BFE8-4D2C-A592-693028A7215B"> <!-- Upgrade of Sun xVM VirtualBox >= v1.6.0 -->
93
94 <!-- Upgrade is flagged if current-install is newer than or equal to package - TODO: should make a dialog appear asking user to confirm downgrade. -->
95 <!--- Setting "OnlyDetect" to "no" makes the installer uninstall an already newer installed version. -->
96 <UpgradeVersion Property="NEWERVERSIONDETECTED" Minimum="$(var.Property_Version)" OnlyDetect="no" />
97
98 <!-- Flag is set if the install will trigger an upgrade of an existing install -->
99 <UpgradeVersion Property="PREVIOUSVERSIONSINSTALLED" Minimum="1.0.0.0" Maximum="$(var.Property_Version)" IncludeMaximum="yes" />
100
101 </Upgrade>
102
103 <Icon Id="vendorvboxicon" src="$(env.VBOX_WINDOWS_ICON_FILE)" />
104 <Property Id="ARPPRODUCTICON">vendorvboxicon</Property>
105 <Property Id="ARPURLINFOABOUT">http://www.virtualbox.org</Property>
106 <Property Id="ARPURLUPDATEINFO">http://www.virtualbox.org</Property>
107 <Property Id="INSTALLDESKTOPSHORTCUT" Value="1"></Property>
108 <Property Id="INSTALLQUICKLAUNCHSHORTCUT" Value="1"></Property>
109 <Property Id="STARTVBOX" Value="1"></Property>
110
111 <!-- Install the product for all users on the system -->
112 <Property Id="ALLUSERS"><![CDATA[1]]></Property>
113
114 <!-- Make sure installation will not start on anything other but the NT family -->
115<?if $(env.BUILD_TARGET_ARCH) = "amd64" ?>
116 <Condition Message="$(loc.Only64Bit)">
117 VersionNT64
118 </Condition>
119<?else ?>
120 <Condition Message="$(loc.Only32Bit)">
121 NOT VersionNT64
122 </Condition>
123
124 <Condition Message="$(loc.WrongOS)">
125 NOT VersionNT=500 AND NOT Version9X AND NOT VersionNT64
126 </Condition>
127
128<?endif ?>
129
130 <Condition Message="$(loc.NeedAdmin)">
131 Privileged
132 </Condition>
133
134 <!-- Force overwriting all files and re-create shortcuts to guarantee a working environment. -->
135 <Property Id='REINSTALLMODE' Value='amus'/>
136
137 <!-- Custom actions -->
138
139 <!-- Figure out where a previous installation was, if any -->
140<?if $(env.BUILD_TARGET_ARCH) = "amd64" ?>
141 <CustomAction Id="OriginalTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[ProgramFiles64Folder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" />
142
143 <Property Id="EXISTINGINSTALLDIR" Secure="yes">
144 <RegistrySearch Id="RegistryGetInstallPath" Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir" Type="raw" Win64="$(var.Property_Win64)"/>
145 </Property>
146 <CustomAction Id="DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" />
147<?else ?>
148 <CustomAction Id="OriginalTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[ProgramFilesFolder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" />
149
150 <Property Id="EXISTINGINSTALLDIR" Secure="yes">
151 <RegistrySearch Id="RegistryGetInstallPath" Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir" Type="raw" Win64="$(var.Property_Win64)"/>
152 </Property>
153 <CustomAction Id="DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" />
154<?endif ?>
155
156 <Binary Id="VBoxInstallHelper" SourceFile="$(env.PATH_OUT)\bin\VBoxInstallHelper.dll" />
157 <CustomAction Id="CheckSerial" BinaryKey="VBoxInstallHelper" DllEntry="CheckSerial" Impersonate="no"/>
158 <CustomAction Id="InstallPythonAPI" BinaryKey="VBoxInstallHelper" DllEntry="InstallPythonAPI" Impersonate="no"/>
159 <CustomAction Id="InstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="InstallBranding" Impersonate="no"/>
160 <CustomAction Id="UninstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="UninstallBranding" Impersonate="no"/>
161
162 <CustomAction Id="UninstallTAPInstances" BinaryKey="VBoxInstallHelper"
163 DllEntry="UninstallTAPInstances" Execute="deferred" Return="check" Impersonate="no"/>
164
165<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
166 <CustomAction Id="CreateHostOnlyInterfaceArgs" Property="CreateHostOnlyInterface" Value="[INSTALLDIR]" Execute="immediate"/>
167 <CustomAction Id="CreateHostOnlyInterface" BinaryKey="VBoxInstallHelper" DllEntry="CreateHostOnlyInterface" Execute="deferred" Return="check" Impersonate="no"/>
168
169 <CustomAction Id="RemoveHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="RemoveHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/>
170
171 <CustomAction Id="InstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/>
172 <CustomAction Id="InstallNetFltArgs" Property="InstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
173
174 <CustomAction Id="RollbackInstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="rollback" Impersonate="no"/>
175 <CustomAction Id="RollbackInstallNetFltArgs" Property="RollbackInstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
176
177 <CustomAction Id="UninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/>
178 <CustomAction Id="UninstallNetFltArgs" Property="UninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
179
180 <CustomAction Id="RollbackUninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="rollback" Impersonate="no"/>
181 <CustomAction Id="RollbackUninstallNetFltArgs" Property="RollbackUninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
182<?endif ?>
183
184 <CustomAction Id="StartVBox" FileKey="vbox" ExeCommand="" Return="asyncNoWait" Impersonate="yes" />
185
186 <!-- Detect old Sun installation. -->
187 <!-- Force a manual uninstall of an already installed Sun VirtualBox version first. -->
188 <!--<Property Id="VBOXSUN">
189 <RegistrySearch Id="RegSearchSunVersion" Root="HKLM" Key="SOFTWARE\Sun\VirtualBox" Name="Version" Type="raw" Win64="$(var.Property_Win64)"/>
190 </Property>
191 <Condition Message="$(loc.SunFound)">
192 NOT VBOXSUN
193 </Condition>-->
194
195 <!-- Detect old innotek installation. -->
196 <!-- Force a manual uninstall of an already installed innotek VirtualBox version first. -->
197 <Property Id="VBOXINNOTEK">
198 <RegistrySearch Id="RegSearchInnotekVersion" Root="HKLM" Key="SOFTWARE\Innotek\VirtualBox" Name="Version" Type="raw" Win64="$(var.Property_Win64)"/>
199 </Property>
200 <Condition Message="$(loc.InnotekFound)">
201 NOT VBOXINNOTEK
202 </Condition>
203
204 <Media Id="1" Cabinet="product.cab" EmbedCab="yes" />
205<?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
206 <Media Id="2" Cabinet="common.cab" EmbedCab="no" CompressionLevel="mszip" />
207<?endif ?>
208
209 <!-- Here comes the file/directory list. -->
210 <Directory Id="TARGETDIR" Name="SourceDir">
211 <Directory Id="$(var.Property_ProgramFiles)" Name="PFiles">
212 <Directory Id="INSTALLDIR" Name="VirtualB" LongName="$(env.VBOX_PRODUCT)">
213
214<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
215 <Directory Id="documents" Name="doc">
216 <!-- The documentation is a separate component. This allows to split the install process
217 into pieces if ever necessary. Maintanance is easier, too. The following component
218 will be installed in the "doc" folder. -->
219 <Component Id="docs" Guid="40BD12C5-89A8-4B81-8A5E-5EEE2C2763C4">
220 <?include $(env.PATH_TARGET)\Files_Doc.wxi ?>
221 </Component>
222
223 </Directory>
224<?endif ?>
225 <!-- Device driver directory -->
226 <Directory Id="drivers" Name="drivers">
227
228 <Directory Id="vboxdrv" Name="vboxdrv">
229 <Component Id="VBoxDrv" Guid="D3E2F2BB-569F-46A2-836C-BDF30FF1EDF8"
230 DriverSequence="2" DriverLegacy="$(var.Property_DriverLegacy)" DriverForceInstall="yes"
231 DriverAddRemovePrograms="no" DriverPlugAndPlayPrompt="no" Win64="$(var.Property_Win64)">
232 <File Id="vboxdrvsys" Name="VBoxDrv.sys" DiskId="1" Vital="yes" KeyPath="yes"
233 Source="$(env.PATH_OUT)\bin\VBoxDrv.sys"/>
234 <File Id="vboxdrvinf" Name="VBoxDrv.inf" DiskId="1" Vital="yes"
235 Source="$(env.PATH_OUT)\bin\VBoxDrv.inf" />
236<?if $(env.VBOX_SIGNING_MODE) != none ?>
237 <File Id="vboxdrvcat" Name="VBoxDrv.cat" DiskId="1" Vital="yes"
238 Source="$(env.PATH_OUT)\bin\VBoxDrv.cat" />
239<?endif ?>
240 </Component> <!-- Directory "drivers\vboxdrv" -->
241 </Directory>
242
243 <Directory Id="usbdrv" Name="USB">
244 <Directory Id="usbfilter" Name="filter">
245 <Component Id="USBFilterDriver" Guid="B7D782D2-96DF-4775-A0E1-A76CF7B04B65"
246 DriverSequence="0" DriverLegacy="$(var.Property_DriverLegacy)" DriverForceInstall="yes"
247 DriverAddRemovePrograms="no" DriverPlugAndPlayPrompt="no" Win64="$(var.Property_Win64)">
248 <File Id="vboxusbmon" Name="VBoxUSBM.sys" LongName="VBoxUSBMon.sys" DiskId="1" Vital="yes"
249 Source="$(env.PATH_OUT)\bin\VBoxUSBMon.sys" />
250 <File Id="vboxusbmoninf" Name="VBoxUSBM.inf" LongName="VBoxUSBMon.inf" DiskId="1" Vital="yes"
251 Source="$(env.PATH_OUT)\bin\VBoxUSBMon.inf" />
252<?if $(env.VBOX_SIGNING_MODE) != none ?>
253 <File Id="vboxusbmoncat" Name="VBoxUSBM.cat" LongName="VBoxUSBMon.cat" DiskId="1" Vital="yes"
254 Source="$(env.PATH_OUT)\bin\VBoxUSBMon.cat" />
255<?endif ?>
256 </Component> <!-- USBFilterDriver -->
257 </Directory> <!-- Directory "drivers\usb\filter" -->
258
259 <Directory Id="usbdevice" Name="device">
260 <Component Id="USBDeviceDriver" Guid="010FE46A-E358-43E2-8BDC-38BC8BEC82E0"
261 DriverSequence="0" DriverLegacy="$(var.Property_DriverLegacy)" DriverForceInstall="yes"
262 DriverAddRemovePrograms="no" DriverPlugAndPlayPrompt="no" Win64="$(var.Property_Win64)">
263 <File Id="vboxusbdrv" Name="VBoxUSB.sys" DiskId="1" Vital="yes"
264 Source="$(env.PATH_OUT)\bin\VBoxUSB.sys" />
265 <File Id="vboxusbinf" Name="VBoxUSB.inf" DiskId="1" Vital="yes"
266 Source="$(env.PATH_OUT)\bin\VBoxUSB.inf" />
267<?if $(env.VBOX_SIGNING_MODE) != none ?>
268 <File Id="vboxusbcat" Name="VBoxUSB.cat" DiskId="1" Vital="yes"
269 Source="$(env.PATH_OUT)\bin\VBoxUSB.cat" />
270<?endif ?>
271 </Component> <!-- USBDeviceDriver -->
272 </Directory> <!-- Directory "drivers\usb\device" -->
273 </Directory> <!-- Directory "drivers\usb" -->
274
275<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
276 <Directory Id="network" Name="network">
277 <Directory Id="NetFltDir" Name="netflt">
278 <Component Id="NetFltDriver" Guid="F0A02F6B-A349-42f8-A2EB-569DCAAAF846" Win64="$(var.Property_Win64)">
279 <File Id="vboxnetfltsys" Name="VBoxNFlt.sys" LongName="VBoxNetFlt.sys" DiskId="1" Vital="yes" KeyPath="yes"
280 Source="$(env.PATH_OUT)\bin\VBoxNetFlt.sys"
281 Checksum="yes"/>
282 <File Id="vboxnetfltnotifydll" Name="VBoxNFN.dll" LongName="VBoxNetFltNotify.dll" DiskId="1" Vital="yes"
283 Source="$(env.PATH_OUT)\bin\VBoxNetFltNotify.dll"
284 Checksum="yes"/>
285 <File Id="vboxnetfltinf" Name="VBoxNFlt.inf" LongName="VBoxNetFlt.inf" DiskId="1" Vital="yes"
286 Source="$(env.PATH_OUT)\bin\VBoxNetFlt.inf" />
287<?if $(env.VBOX_SIGNING_MODE) != none ?>
288 <File Id="vboxnetfltcat" Name="VBoxNFlt.cat" LongName="VBoxNetFlt.cat" DiskId="1" Vital="yes"
289 Source="$(env.PATH_OUT)\bin\VBoxNetFlt.cat" />
290<?endif ?>
291 <File Id="vboxnetflt_minf" Name="VBoxNFlM.inf" LongName="VBoxNetFlt_m.inf" DiskId="1" Vital="yes"
292 Source="$(env.PATH_OUT)\bin\VBoxNetFlt_m.inf" />
293 </Component>
294 </Directory> <!-- Directory "drivers\network\netflt" -->
295 <Directory Id="NetAdpDir" Name="netadp">
296 <Component Id="NetAdpDriver" Guid="7adf3e12-af3c-4d36-8bec-36d5064cf84f" Win64="$(var.Property_Win64)">
297 <File Id="vboxnetadpsys" Name="VBoxNAdp.sys" LongName="VBoxNetAdp.sys" DiskId="1" Vital="yes" KeyPath="yes"
298 Source="$(env.PATH_OUT)\bin\VBoxNetAdp.sys"
299 Checksum="yes"/>
300 <File Id="vboxnetadpinf" Name="VBoxNAdp.inf" LongName="VBoxNetAdp.inf" DiskId="1" Vital="yes"
301 Source="$(env.PATH_OUT)\bin\VBoxNetAdp.inf" />
302<?if $(env.VBOX_SIGNING_MODE) != none ?>
303 <File Id="vboxnetadpcat" Name="VBoxNAdp.cat" LongName="VBoxNetAdp.cat" DiskId="1" Vital="yes"
304 Source="$(env.PATH_OUT)\bin\VBoxNetAdp.cat" />
305<?endif ?>
306 </Component> <!-- NetAdpDriver -->
307 </Directory> <!-- Directory "drivers\network\netadp" -->
308 </Directory> <!-- Directory "drivers\network" -->
309<?endif ?>
310 </Directory> <!-- Directory "drivers" -->
311
312
313 <!-- National Language Support directory -->
314 <Directory Id="nls" Name="nls">
315 <Component Id="nls" Guid="D63517D7-1CF3-4D06-B3EE-C561E323069B">
316 <!-- Include the autogenerated NLS file list -->
317 <?include $(env.PATH_TARGET)\VBoxGuiNLS.wxi ?>
318 </Component>
319 </Directory>
320
321 <!-- COM components have a separate entry mainly because of the KeyPath attribute (that hints the
322 TypeLib element where to take the TLB resource from) may appear only once per Component. -->
323 <Component Id="MainCOM" Guid="CD4A3C6C-C2D5-428D-90A1-B6DA3D0777D6" Win64="$(var.Property_Win64)">
324
325 <File Id="VBoxSVC" Name="VBoxSVC.exe" DiskId="1" Vital="yes"
326 Source="$(env.PATH_OUT)\bin\VBoxSVC.exe">
327 </File>
328
329 <!-- We set KeyPath on this file to instruct TypeLib to read the TLB resource from it
330 and create appropriate Interface registry entries. Note that the same TLB is present
331 in VBoxSVC.exe - it's just a matter of choice which one to use -->
332 <File Id="VBoxC" Name="VBoxC.dll" DiskId="1" Vital="yes"
333 Source="$(env.PATH_OUT)\bin\VBoxC.dll"
334 KeyPath="yes">
335 </File>
336
337 <!-- Include the autogenerated TypeLib block -->
338 <?include $(env.PATH_TARGET)\VirtualBox_TypeLib.wxi ?>
339
340 </Component>
341
342 <Component Id="DesktopShortcut" Guid="668F8A1A-F5CE-48B3-BB1A-3042EE27B279" Win64="$(var.Property_Win64)">
343 <Condition>INSTALLDESKTOPSHORTCUT</Condition>
344 <CreateFolder/>
345 <Shortcut Id="VBoxDesktopShortcut" Directory="DesktopFolder"
346 Name="VBox" LongName="$(env.VBOX_PRODUCT)" WorkingDirectory="INSTALLDIR"
347 Advertise="no" Target="[#vbox]" />
348 </Component>
349
350 <Component Id="QuicklaunchShortcut" Guid="CC19E026-938A-41CB-8E77-3F33296244B6" Win64="$(var.Property_Win64)">
351 <Condition>INSTALLQUICKLAUNCHSHORTCUT</Condition>
352 <CreateFolder/>
353 <Shortcut Id="VBoxQuicklaunchShortcut" Directory="QuicklaunchFolder"
354 Name="VBox" LongName="$(env.VBOX_PRODUCT)" WorkingDirectory="INSTALLDIR"
355 Advertise="no" Target="[#vbox]" />
356 </Component>
357
358 <!-- All Binaries, DLLs (except COM) and drivers are in one component because they belong together. Additional
359 binaries e.g. test tools, utilities etc. should be in another component so they"re clearly separated. -->
360 <Component Id="MainBinaries" Guid="5C8FE57A-F744-4DE0-AA3F-A563F486AD98" Win64="$(var.Property_Win64)">
361 <!-- Set required environment variables. -->
362 <Environment Id="EnvVBoxInstallDir" Action="set" Name="VBOX_INSTALL_PATH"
363 System="yes" Part="last" Permanent="no" Value="[INSTALLDIR]" />
364 <!-- The "Name" attribute must always be present. If the name is longer than 8.3 the additional "LongName"
365 attribute can be used. -->
366 <File Id="vbox" Name="vbox.exe" LongName="VirtualBox.exe" DiskId="1" Vital="yes"
367 Source="$(env.PATH_OUT)\bin\VirtualBox.exe">
368 <!-- The target folder for the shortcut in the "Programs" menu is defined below. -->
369 <Shortcut Id="startmenuVBox" Directory="ProgramMenuDir" Name="VBox"
370 LongName="VirtualBox" WorkingDirectory="INSTALLDIR"/>
371 </File>
372<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
373 <!-- Include all user manual .CHM files (file is generated by makefile). -->
374 <?include $(env.PATH_TARGET)\Files_Main.wxi ?>
375<?endif ?>
376 <!-- Include all license files (file is generated by makefile). -->
377 <?include $(env.PATH_TARGET)\Files_License.wxi ?>
378
379<?if $(env.VBOX_WITH_DEBUGGER_GUI) = "yes" ?>
380 <File Id="vboxdbgdll" Name="VBoxDbg.dll" DiskId="1" Vital="yes"
381 Source="$(env.PATH_OUT)\bin\VBoxDbg.dll" />
382<?endif ?>
383
384 <File Id="vboxmanage" Name="VBoxMan.exe" LongName="VBoxManage.exe" DiskId="1" Vital="yes"
385 Source="$(env.PATH_OUT)\bin\VBoxManage.exe" />
386 <File Id="vboxheadless" Name="VBoxHead.exe" LongName="VBoxHeadless.exe" DiskId="1" Vital="yes"
387 Source="$(env.PATH_OUT)\bin\VBoxHeadless.exe">
388
389 <!-- Create a simple shortcut for VBoxVRDP, which is not present anymore, pointing to VBoxHeadless.exe -->
390 <Shortcut Id="ShortcutVBoxVRDP" Directory="INSTALLDIR" Name="VBoxVRDP" Show="normal" WorkingDirectory="INSTALLDIR"/>
391
392 </File>
393
394 <File Id="vboxnetdhcp" Name="VBoxDHCP.exe" LongName="VBoxNetDHCP.exe" DiskId="1" Vital="yes"
395 Source="$(env.PATH_OUT)\bin\VBoxNetDHCP.exe"/>
396
397 <!-- VBox DLL files -->
398 <File Id="vboxdddll" Name="VBoxDD.dll" DiskId="1" Vital="yes"
399 Source="$(env.PATH_OUT)\bin\VBoxDD.dll" />
400 <File Id="vboxdd2dll" Name="VBoxDD2.dll" DiskId="1" Vital="yes"
401 Source="$(env.PATH_OUT)\bin\VBoxDD2.dll" />
402 <File Id="vboxddudll" Name="VBoxDDU.dll" DiskId="1" Vital="yes"
403 Source="$(env.PATH_OUT)\bin\VBoxDDU.dll" />
404 <File Id="vboxrtdll" Name="VBoxRT.dll" DiskId="1" Vital="yes"
405 Source="$(env.PATH_OUT)\bin\VBoxRT.dll" />
406 <File Id="vboxremdll" Name="VBoxREM.dll" DiskId="1" Vital="yes"
407 Source="$(env.PATH_OUT)\bin\VBoxREM.dll" />
408<?if $(env.BUILD_TARGET_ARCH) = "amd64" ?>
409 <File Id="vboxrem2rel" Name="VBoxREM2.rel" DiskId="1" Vital="yes"
410 Source="$(env.PATH_OUT)\bin\VBoxREM2.rel" />
411<?else ?>
412 <File Id="vboxrem32dll" Name="VBoxREM3.dll" LongName="VBoxREM32.dll" DiskId="1" Vital="yes"
413 Source="$(env.PATH_OUT)\bin\VBoxREM32.dll" />
414 <File Id="vboxrem64dll" Name="VBoxREM6.dll" LongName="VBoxREM64.dll" DiskId="1" Vital="yes"
415 Source="$(env.PATH_OUT)\bin\VBoxREM64.dll" />
416<?endif ?>
417 <File Id="vboxvmmdll" Name="VBoxVMM.dll" DiskId="1" Vital="yes"
418 Source="$(env.PATH_OUT)\bin\VBoxVMM.dll" />
419<?if $(env.VBOX_WITH_VRDP) = "yes" ?>
420 <File Id="vboxvrdpdll" Name="VBoxVRDP.dll" DiskId="1" Vital="yes"
421 Source="$(env.PATH_OUT)\bin\VBoxVRDP.dll" />
422<?endif ?>
423 <File Id="vboxshfolderdll" Name="VBoxSF.dll" LongName="VBoxSharedFolders.dll" DiskId="1" Vital="yes"
424 Source="$(env.PATH_OUT)\bin\VBoxSharedFolders.dll" />
425 <File Id="vboxshclpbrddll" Name="VBoxClip.dll" LongName="VBoxSharedClipboard.dll" DiskId="1" Vital="yes"
426 Source="$(env.PATH_OUT)\bin\VBoxSharedClipboard.dll" />
427<?if $(env.VBOX_WITH_GUEST_PROPS) = "yes" ?>
428 <File Id="vboxguestpropdll" Name="VBoxProp.dll" LongName="VBoxGuestPropSvc.dll" DiskId="1" Vital="yes"
429 Source="$(env.PATH_OUT)\bin\VBoxGuestPropSvc.dll" />
430<?endif ?>
431<?if $(env.VBOX_WITH_GUEST_CONTROL) = "yes" ?>
432 <File Id="vboxguestctrldll" Name="VBoxCtrl.dll" LongName="VBoxGuestControlSvc.dll" DiskId="1" Vital="yes"
433 Source="$(env.PATH_OUT)\bin\VBoxGuestControlSvc.dll" />
434<?endif ?>
435<?if $(env.VBOX_WITH_VRDP) = "yes" ?>
436 <File Id="vrdpauthdll" Name="VRDPAuth.dll" DiskId="1" Vital="yes"
437 Source="$(env.PATH_OUT)\bin\VRDPAuth.dll" />
438 <File Id="vrdpauthsimpledll" Name="VRDPASim.dll" LongName="VRDPAuthSimple.dll" DiskId="1" Vital="yes"
439 Source="$(env.PATH_OUT)\bin\VRDPAuthSimple.dll" />
440<?endif ?>
441 <File Id="vmmgc" Name="VMMGC.gc" DiskId="1" Vital="yes"
442 Source="$(env.PATH_OUT)\bin\VMMGC.gc" />
443 <File Id="vboxddgc" Name="VBoxDDGC.gc" DiskId="1" Vital="yes"
444 Source="$(env.PATH_OUT)\bin\VBoxDDGC.gc" />
445 <File Id="vboxdd2gc" Name="VBoxDD2.gc" LongName="VBoxDD2GC.gc" DiskId="1" Vital="yes"
446 Source="$(env.PATH_OUT)\bin\VBoxDD2GC.gc" />
447
448 <File Id="vmmr0" Name="VMMR0.r0" DiskId="1" Vital="yes"
449 Source="$(env.PATH_OUT)\bin\VMMR0.r0" />
450 <File Id="vboxddr0" Name="VBoxDDR0.r0" DiskId="1" Vital="yes"
451 Source="$(env.PATH_OUT)\bin\VBoxDDR0.r0" />
452 <File Id="vboxdd2r0" Name="VBDD2R0.r0" LongName="VBoxDD2R0.r0" DiskId="1" Vital="yes"
453 Source="$(env.PATH_OUT)\bin\VBoxDD2R0.r0" />
454
455<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
456 <File Id="vboxtestogl" Name="VBTstOGL.exe" LongName="VBoxTestOGL.exe" DiskId="1" Vital="yes"
457 Source="$(env.PATH_OUT)\bin\VBoxTestOGL.exe" />
458<?endif ?>
459 <!-- Qt stuff -->
460 <File Id="qtcore4dll" Name="QtCrVBx4.dll" LongName="QtCoreVBox4.dll" DiskId="1" Vital="yes"
461 Source="$(env.PATH_OUT)\bin\QtCoreVBox4.dll" />
462 <File Id="qtgui4dll" Name="QtGuVbx4.dll" LongName="QtGuiVBox4.dll" DiskId="1" Vital="yes"
463 Source="$(env.PATH_OUT)\bin\QtGuiVBox4.dll" />
464 <File Id="qtnetwork4dll" Name="QtNwVBx4.dll" LongName="QtNetworkVBox4.dll" DiskId="1" Vital="yes"
465 Source="$(env.PATH_OUT)\bin\QtNetworkVBox4.dll" />
466<?if $(env.VBOX_GUI_USE_QGL) = "yes" ?>
467 <File Id="qtopengl4dll" Name="QtGlVBx4.dll" LongName="QtOpenGLVBox4.dll" DiskId="1" Vital="yes"
468 Source="$(env.PATH_OUT)\bin\QtOpenGLVBox4.dll" />
469<?endif?>
470
471<?if $(env.VBOX_USE_VCC80) = "yes" ?>
472 <!-- MS v8 Runtime DLL files (private assembly) -->
473 <File Id="vc80crtmft" Name="VC80CRT.mft" LongName="Microsoft.VC80.CRT.manifest" DiskId="1" Vital="yes"
474 Source="$(env.PATH_OUT)\bin\Microsoft.VC80.CRT\Microsoft.VC80.CRT.manifest" />
475 <File Id="msvcr80dll" Name="msvcr80.dll" DiskId="1" Vital="yes"
476 Source="$(env.PATH_OUT)\bin\Microsoft.VC80.CRT\msvcr80.dll" />
477 <File Id="msvcp80dll" Name="msvcp80.dll" DiskId="1" Vital="yes"
478 Source="$(env.PATH_OUT)\bin\Microsoft.VC80.CRT\msvcp80.dll" />
479<?endif?>
480
481 <!-- MS v7 Runtime DLL files -->
482<?if $(env.VBOX_USE_VCC80) != "yes" ?>
483 <File Id="msvcpdll" Name="msvcp71.dll" DiskId="1" Vital="yes"
484 Source="$(env.PATH_OUT)\bin\msvcp71.dll" />
485 <File Id="msvcrtdll" Name="msvcrt.dll" DiskId="1" Vital="yes"
486 Source="$(env.PATH_OUT)\bin\msvcrt.dll" />
487<?endif?>
488<?if $(env.BUILD_TARGET_ARCH) != "amd64" ?>
489 <File Id="msvcrdll" Name="msvcr71.dll" DiskId="1" Vital="yes"
490 Source="$(env.PATH_OUT)\bin\msvcr71.dll" />
491<?endif?>
492 <!-- EFI firmware -->
493<?if $(env.VBOX_WITH_EFIFW_PACKING) = "yes" ?>
494 <?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
495 <File Id="vboxefifd32" LongName="VBoxEFI32.fd" Name="efi32.fd" DiskId="2" Vital="yes"
496 Source="$(env.PATH_OUT)\bin\VBoxEFI32.fd" />
497 <File Id="vboxefifd64" LongName="VBoxEFI64.fd" Name="efi64.fd" DiskId="2" Vital="yes"
498 Source="$(env.PATH_OUT)\bin\VBoxEFI64.fd" />
499 <?else ?>
500 <File Id="vboxefifd32" LongName="VBoxEFI32.fd" Name="efi32.fd" DiskId="1" Vital="yes"
501 Source="$(env.PATH_OUT)\bin\VBoxEFI32.fd" />
502 <File Id="vboxefifd64" LongName="VBoxEFI64.fd" Name="efi64.fd" DiskId="1" Vital="yes"
503 Source="$(env.PATH_OUT)\bin\VBoxEFI64.fd" />
504 <?endif ?>
505<?endif?>
506 <!-- VBox guest additions -->
507<?if $(env.VBOX_WITH_ADDITIONS_PACKING) = "yes" ?>
508 <?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
509 <File Id="VBoxGuestAdditions.iso" Name="VBoxAdd.iso" LongName="VBoxGuestAdditions.iso" DiskId="2" Vital="yes"
510 Source="$(env.PATH_MULTIARCH_GUEST_ADDITIONS_ISO)\VBoxGuestAdditions.iso" />
511 <?else ?>
512 <File Id="vboxguest" Name="VBoxAdd.iso" LongName="VBoxGuestAdditionsiso" DiskId="1" Vital="yes"
513 Source="$(env.PATH_OUT)\bin\additions\VBoxGuestAdditions.iso" />
514 <?endif ?>
515<?endif ?>
516
517 <!-- Include key for VBox version -->
518 <?include $(env.PATH_TARGET)\VBoxKey.wxi ?>
519
520 </Component> <!-- MainBinaries -->
521
522<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
523 <!-- Qt accessible plugins -->
524 <Directory Id="accessible" Name="accessbl" LongName="accessible">
525 <Component Id="qtaccessible" Guid="12040EF9-D4A8-4FB2-A69C-CA2F5C354A45">
526 <File Id="qtaccessibleplugindll" Name="qtacsw4.dll" LongName="qtaccessiblewidgets4.dll" DiskId="1" Vital="yes"
527 Source="$(env.PATH_OUT)\bin\accessible\qtaccessiblewidgets4.dll" />
528 </Component>
529 </Directory> <!-- Qt accessible plugins -->
530<?endif?>
531
532
533<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
534 <!-- Python bindings -->
535 <Directory Id="sdk" Name="sdk">
536 <Directory Id="installer" Name="install">
537 <Component Id="VBoxPyInst" Guid="C9A40306-5102-11DE-A7BA-C3C555D89593">
538 <File Id="vboxapisetup" Name="pysetup.py" LongName="vboxapisetup.py" DiskId="$(var.Property_DiskIdCommon)" Vital="yes"
539 Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapisetup.py" />
540 </Component>
541 <Directory Id="vboxapi" Name="vboxapi">
542 <Component Id="VBoxPyMod" Guid="DF19CB76-5102-11DE-943B-13C755D89593">
543 <File Id="__init__.py" Name="__init__.py" DiskId="$(var.Property_DiskIdCommon)" Vital="yes"
544 Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\__init__.py" />
545 <File Id="VirtualBox_constants.py" Name="vbconst.py" LongName="VirtualBox_constants.py" DiskId="$(var.Property_DiskIdCommon)" Vital="yes"
546 Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\VirtualBox_constants.py" />
547 </Component>
548 </Directory>
549 </Directory>
550 </Directory>
551 <!-- Python bindings -->
552<?endif?>
553
554
555<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
556 <Component Id="VBoxCROpenGL" Guid="874A1297-835A-491D-8A9D-7E723BC29EE7" Win64="$(var.Property_Win64)">
557 <File Id="vboxoglhostcrutil" Name="VbGlHCRU.dll" LongName="VBoxOGLhostcrutil.dll" DiskId="1" Vital="yes"
558 Source="$(env.PATH_OUT)\bin\VBoxOGLhostcrutil.dll" />
559 <File Id="vboxoglhosterrorspu" Name="VbGlHers.dll" LongName="VBoxOGLhosterrorspu.dll" DiskId="1" Vital="yes"
560 Source="$(env.PATH_OUT)\bin\VBoxOGLhosterrorspu.dll" />
561 <File Id="vboxoglrenderspu" Name="VbGlRndr.dll" LongName="VBoxOGLrenderspu.dll" DiskId="1" Vital="yes"
562 Source="$(env.PATH_OUT)\bin\VBoxOGLrenderspu.dll" />
563 <File Id="vboxsharedcropengl" Name="VbShCRGL.dll" LongName="VBoxSharedCrOpenGL.dll" DiskId="1" Vital="yes"
564 Source="$(env.PATH_OUT)\bin\VBoxSharedCrOpenGL.dll" />
565 </Component>
566<?endif?>
567 <!-- SDL plugins -->
568 <Component Id="VBoxSDLBinaries" Guid="F09D5FD9-E176-42B0-90A9-481BB18B0CB4" Win64="$(var.Property_Win64)">
569 <File Id="vboxsdl" Name="VBoxSDL.exe" DiskId="1" Vital="yes"
570 Source="$(env.PATH_OUT)\bin\VBoxSDL.exe" />
571 <File Id="sdldll" Name="SDL.dll" DiskId="1" Vital="yes"
572 Source="$(env.PATH_OUT)\bin\SDL.dll" />
573<?if $(env.VBOX_WITH_SECURELABEL) = "yes" ?>
574 <File Id="sdlttfdll" Name="SDL_ttf.dll" DiskId="1" Vital="yes"
575 Source="$(env.PATH_OUT)\bin\SDL_ttf.dll" />
576<?endif?>
577 </Component> <!-- SDL plugins -->
578
579<?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?>
580 <!-- Webservice -->
581 <Component Id="VBoxWebService" Guid="DD404F04-9874-43E9-AEE2-7762924D922E">
582 <File Id="vboxweb" Name="vboxwebs.exe" LongName="vboxwebsrv.exe" DiskId="1" Vital="yes"
583 Source="$(env.PATH_OUT)\bin\vboxwebsrv.exe" />
584 </Component> <!-- Webservice -->
585<?endif?>
586
587<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
588 <!--Python -->
589 <Component Id="VBoxPythonBinding" Guid="293D7E11-78DA-4C31-AEED-AE2FE42F6881">
590 <Condition>PYTHONINSTALLED</Condition>
591 <!-- Nothing in here yet. -->
592 </Component>
593<?endif?>
594 </Directory> <!-- Installation directory -->
595 </Directory> <!-- Windows program files directory -->
596
597 <!-- Create a subdirectory in the "Programs" start menu -->
598 <Directory Id="ProgramMenuFolder" Name="PMenu" LongName="Programs">
599 <Directory Id="ProgramMenuDir" Name="vbox" LongName="$(env.VBOX_PRODUCT)" />
600 </Directory>
601
602 <Directory Id="DesktopFolder" Name="Desktop" />
603
604 <Directory Id="AppDataFolder" Name="AppData">
605 <Directory Id="AppDataMicrosoft" Name="MS" LongName="Microsoft">
606 <Directory Id="AppDataMSIE" Name="IE" LongName="Internet Explorer">
607 <Directory Id="QuicklaunchFolder" Name="QL" LongName="Quick Launch"/>
608 </Directory>
609 </Directory>
610 </Directory>
611 </Directory>
612
613 <Feature Id="VBoxApplication" Title="VirtualBox Application" Level="1"
614 Description="$(loc.VB_App)"
615 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
616 Absent="disallow">
617
618 <ComponentRef Id="DesktopShortcut" />
619 <ComponentRef Id="QuicklaunchShortcut" />
620
621<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
622 <ComponentRef Id="docs" />
623<?endif?>
624 <ComponentRef Id="nls" />
625 <ComponentRef Id="MainCOM" />
626 <ComponentRef Id="MainBinaries" />
627<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
628 <ComponentRef Id="qtaccessible" />
629<?endif?>
630<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
631 <ComponentRef Id="VBoxPyInst" />
632 <ComponentRef Id="VBoxPyMod" />
633<?endif?>
634
635<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
636 <ComponentRef Id="VBoxCROpenGL" />
637<?endif?>
638 <ComponentRef Id="VBoxSDLBinaries" />
639<?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?>
640 <ComponentRef Id="VBoxWebService" />
641<?endif?>
642 <ComponentRef Id="VBoxDrv" />
643
644 <Feature Id="VBoxUSB" Title="VirtualBox USB Support" Level="1"
645 Description="$(loc.VB_USBDriver)"
646 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" >
647 <ComponentRef Id="USBFilterDriver" />
648 <ComponentRef Id="USBDeviceDriver" />
649 </Feature>
650
651<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
652 <Feature Id="VBoxNetwork" Title="VirtualBox Networking" Level="1"
653 Description="$(loc.VB_Network)"
654 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" >
655 <Feature Id="VBoxNetworkFlt" Title="VirtualBox Bridged Networking" Level="1"
656 Description="$(loc.VB_NetFltDriver)"
657 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" >
658 <ComponentRef Id="NetFltDriver" />
659 </Feature>
660 <Feature Id="VBoxNetworkAdp" Title="VirtualBox Host-Only Networking" Level="1"
661 Description="$(loc.VB_NetAdpDriver)"
662 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" >
663 <ComponentRef Id="NetAdpDriver" />
664 </Feature>
665 </Feature>
666<?endif?>
667
668<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
669
670 <Feature Id="VBoxPython" Title="VirtualBox Python Support" Level="1"
671 Description="$(loc.VB_Python)"
672 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" >
673 <ComponentRef Id="VBoxPythonBinding" />
674 </Feature>
675<?endif?>
676
677 </Feature>
678
679 <!-- Include user interface definition. -->
680 <?include UserInterface.wxi ?>
681
682 <InstallExecuteSequence>
683
684 <!-- AppSearch must be done before "RemoveExistingProducts" and before "FindRelatedProducts". -->
685 <AppSearch Sequence="1"></AppSearch>
686 <LaunchConditions After="AppSearch" />
687 <RemoveExistingProducts After="InstallValidate"><![CDATA[NEWERVERSIONDETECTED OR PREVIOUSVERSIONSINSTALLED]]></RemoveExistingProducts>
688
689 <Custom Action="OriginalTargetDir" After="FileCost"><![CDATA[(NOT INSTALLDIR) AND (NOT EXISTINGINSTALLDIR)]]></Custom>
690 <Custom Action="DefaultTargetDir" Before="FileCost" ><![CDATA[NOT Installed AND (NOT INSTALLDIR) AND EXISTINGINSTALLDIR]]></Custom>
691
692 <Custom Action="UninstallTAPInstances" Before="InstallFiles" >1</Custom>
693<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
694 <Custom Action="CreateHostOnlyInterfaceArgs" Before="CreateHostOnlyInterface" ><![CDATA[&VBoxNetworkAdp=3]]></Custom>
695 <Custom Action="CreateHostOnlyInterface" Before="InstallFinalize" ><![CDATA[&VBoxNetworkAdp=3]]></Custom>
696 <Custom Action="RemoveHostOnlyInterfaces" After="UninstallNetFlt" ></Custom>
697
698 <Custom Action="RollbackInstallNetFltArgs" Before="RollbackInstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
699 <Custom Action="RollbackInstallNetFlt" Before="InstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
700 <Custom Action="InstallNetFltArgs" Before="InstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
701 <Custom Action="InstallNetFlt" Before="CreateHostOnlyInterface" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
702
703 <Custom Action="RollbackUninstallNetFltArgs" Before="RollbackUninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
704 <Custom Action="RollbackUninstallNetFlt" Before="UninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
705 <Custom Action="UninstallNetFltArgs" Before="UninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
706 <Custom Action="UninstallNetFlt" After="InstallInitialize" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
707<?endif?>
708 <Custom Action="InstallPythonAPI" After="InstallFinalize" ><![CDATA[&VBoxPython=3]]></Custom>
709 <Custom Action="InstallBranding" After="InstallFinalize" ><![CDATA[NOT REMOVE]]></Custom>
710 <Custom Action="UninstallBranding" After="InstallFinalize" ><![CDATA[REMOVE]]></Custom>
711
712 </InstallExecuteSequence>
713
714 </Product>
715</Wix>
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette