VirtualBox

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

最後變更 在這個檔案從49039是 48323,由 vboxsync 提交於 12 年 前

Main,Installer: 32-bit on 64-bit COM API support (windows). Currently disabled

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 51.0 KB
 
1<?xml version="1.0"?>
2<!--
3 VirtualBox Windows Installation Script (WiX)
4
5 Copyright (C) 2006-2012 Oracle Corporation
6
7 This file is part of VirtualBox Open Source Edition (OSE), as
8 available from http://www.alldomusa.eu.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_RegKeyInstall = "Software\$(env.VBOX_VENDOR_SHORT)\VirtualBox\Install" ?>
18<?define Property_Version = "$(env.VBOX_VERSION_STRING_RAW)" ?>
19<?define Property_VersionExt = "$(env.VBOX_VERSION_STRING)" ?>
20<?define Property_Upgrade = "yes" ?>
21
22<?if $(env.BUILD_TARGET_ARCH) = "amd64" ?>
23 <?define Property_ProgramFiles = "ProgramFiles64Folder" ?>
24 <?define Property_Platform = "x64" ?>
25 <?define Property_Win64 = "yes" ?>
26
27<?if $(env.VBOX_SIGNING_MODE) != none ?>
28 <?define Property_DriverLegacy = "no" ?>
29<?else ?>
30 <?define Property_DriverLegacy = "yes" ?>
31<?endif ?>
32
33<?else ?>
34 <?define Property_ProgramFiles = "ProgramFilesFolder" ?>
35 <?define Property_Platform = "x86" ?>
36 <?define Property_Win64 = "no" ?>
37
38<?if $(env.VBOX_SIGNING_MODE) != none ?>
39 <!-- Note: Settings this to 'no' breaks win2k installs (!) -->
40 <?define Property_DriverLegacy = "yes" ?>
41<?else ?>
42 <?define Property_DriverLegacy = "yes" ?>
43<?endif ?>
44
45<?endif ?>
46
47<!-- If we build a combined installer (32- and 64-bit in one installer), we
48 use two installer "disks": One for all platform-specific stuff and one which
49 contains all common (platform independent) stuff (like manuals, bitmaps etc). -->
50<?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
51 <?define Property_DiskIdCommon = "2" ?>
52<?else ?>
53 <?define Property_DiskIdCommon = "1" ?>
54<?endif ?>
55
56<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
57 xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
58
59 <!-- Note: GUIDs in WiX *must* be uppercase! -->
60 <!-- Always include an upgrade ID or otherwise upgrade installation will not be possible. When doing
61 a major upgrade (more than just fixing a few files) change the product GUID. We always do a major
62 upgrade even for minor VBox updates. For that only change the product ID and the product version.
63 The upgrade code *never* must be changed! -->
64
65 <!-- Update / Upgrade policies:
66 Update Type Package Code Product Version Product Code Upgrade Code
67 Small update change don't change don't change don't change
68 Minor update change change don't change don't change
69 Major upgrade change change change don't change -->
70
71 <!-- Old product ID: <Product Id="B59FE77B-738F-4f1c-AB48-3104895AF676"
72 Old upgrade code of innotek: UpgradeCode="F5FFAEBF-97AE-4038-8F91-4DE719456127" -->
73
74 <Product Id="*"
75 UpgradeCode="C4BAD770-BFE8-4D2C-A592-693028A7215B"
76 Name="$(env.VBOX_PRODUCT) $(env.VBOX_VERSION_STRING)"
77 Language="!(loc.LANG)"
78 Codepage="1252"
79 Version="$(var.Property_Version)"
80 Manufacturer="$(env.VBOX_VENDOR)">
81
82 <Package Id="*" Keywords="Installer"
83 Description="$(env.VBOX_PRODUCT) $(var.Property_VersionExt) installation package"
84 Comments="$(env.VBOX_PRODUCT) installation package"
85 Manufacturer="$(env.VBOX_VENDOR)"
86 InstallerVersion="200"
87 Compressed="yes"
88 InstallPrivileges="elevated"
89 Platform="$(var.Property_Platform)"/>
90
91 <!-- *************************** Upgrade packages only ******************************* -->
92 <!-- Minimum and Maximum specify the range of versions we are supposed to update with this upgrade.
93 IncludeMaximum and IncludeMinimum specify whether the bound value is actually included in the range or not
94 (IncludeMaximum = yes meaning to find versions below or equal to the version specified in Maximum while
95 IncludeMaximum = no only finds those below the Maximum).
96 OnlyDetect tells the installer not to remove the previous product. This is useful as long as we
97 only change files in the package. -->
98
99 <Upgrade Id="C4BAD770-BFE8-4D2C-A592-693028A7215B"> <!-- Upgrade of Sun xVM VirtualBox >= v1.6.0 -->
100
101 <!-- Upgrade is flagged if current-install is newer than or equal to package - TODO: should make a dialog appear asking user to confirm downgrade. -->
102 <!--- Setting "OnlyDetect" to "no" makes the installer uninstall an already newer installed version. -->
103 <UpgradeVersion Property="NEWERVERSIONDETECTED" Minimum="$(var.Property_Version)" OnlyDetect="no" />
104
105 <!-- Flag is set if the install will trigger an upgrade of an existing install -->
106 <UpgradeVersion Property="PREVIOUSVERSIONSINSTALLED" Minimum="1.0.0.0" Maximum="$(var.Property_Version)" IncludeMaximum="yes" />
107
108 </Upgrade>
109
110 <!-- The product's icon table. -->
111 <Icon Id="IconVirtualBox" SourceFile="$(env.VBOX_WINDOWS_ICON_FILE)" />
112
113 <!-- Global properties. -->
114 <Property Id="ARPPRODUCTICON">IconVirtualBox</Property>
115 <Property Id="ARPURLINFOABOUT">http://www.alldomusa.eu.org</Property>
116 <Property Id="ARPURLUPDATEINFO">http://www.alldomusa.eu.org</Property>
117 <Property Id="INSTALLDESKTOPSHORTCUT" Value="1"></Property>
118 <Property Id="INSTALLQUICKLAUNCHSHORTCUT" Value="1"></Property>
119 <Property Id="STARTVBOX" Value="1"></Property>
120
121 <!-- Install the product for all users on the system -->
122 <Property Id="ALLUSERS"><![CDATA[1]]></Property>
123
124 <!-- Make sure installation will not start on anything other but the NT family -->
125<?if $(env.BUILD_TARGET_ARCH) = "amd64" ?>
126 <Condition Message="!(loc.Only64Bit)">
127 VersionNT64
128 </Condition>
129<?else ?>
130 <Condition Message="!(loc.Only32Bit)">
131 NOT VersionNT64
132 </Condition>
133
134 <Condition Message="!(loc.WrongOS)">
135 NOT VersionNT=500 AND NOT Version9X AND NOT VersionNT64
136 </Condition>
137
138<?endif ?>
139
140 <Condition Message="!(loc.NeedAdmin)">
141 Privileged
142 </Condition>
143
144 <!-- Force overwriting all files and re-create shortcuts to guarantee a working environment -->
145 <Property Id='REINSTALLMODE' Value='amus'/>
146
147 <!-- Custom actions -->
148
149 <!-- Figure out where a previous installation was, if any -->
150<?if $(env.BUILD_TARGET_ARCH) = "amd64" ?>
151 <CustomAction Id="ca_OriginalTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[ProgramFiles64Folder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" />
152
153 <Property Id="EXISTINGINSTALLDIR" Secure="yes">
154 <RegistrySearch Id="RegistryGetInstallPath" Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir" Type="raw" Win64="$(var.Property_Win64)"/>
155 </Property>
156 <CustomAction Id="ca_DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" />
157<?else ?>
158 <CustomAction Id="ca_OriginalTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[ProgramFilesFolder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" />
159
160 <Property Id="EXISTINGINSTALLDIR" Secure="yes">
161 <RegistrySearch Id="RegistryGetInstallPath" Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir" Type="raw" Win64="$(var.Property_Win64)"/>
162 </Property>
163 <CustomAction Id="ca_DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" />
164<?endif ?>
165
166 <Binary Id="VBoxInstallHelper" SourceFile="$(env.PATH_OUT)\bin\VBoxInstallHelper.dll" />
167 <CustomAction Id="ca_CheckSerial" BinaryKey="VBoxInstallHelper" DllEntry="CheckSerial" Impersonate="no"/>
168
169 <CustomAction Id="ca_InstallPythonAPI" BinaryKey="VBoxInstallHelper" DllEntry="InstallPythonAPI" Execute="deferred" Return="check" Impersonate="no"/>
170 <CustomAction Id="ca_InstallPythonAPIArgs" Property="ca_InstallPythonAPI" Value="[INSTALLDIR]" Execute="immediate"/>
171
172 <CustomAction Id="ca_InstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="InstallBranding" Execute="deferred" Return="check" Impersonate="no"/>
173 <CustomAction Id="ca_InstallBrandingArgs" Property="ca_InstallBranding" Value="[INSTALLDIR]" Execute="immediate"/>
174
175 <CustomAction Id="ca_UninstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="UninstallBranding" Execute="deferred" Return="check" Impersonate="no"/>
176 <CustomAction Id="ca_UninstallBrandingArgs" Property="ca_UninstallBranding" Value="[INSTALLDIR]" Execute="immediate"/>
177
178 <CustomAction Id="ca_UninstallTAPInstances" BinaryKey="VBoxInstallHelper"
179 DllEntry="UninstallTAPInstances" Execute="deferred" Return="check" Impersonate="no"/>
180
181<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
182 <CustomAction Id="ca_CreateHostOnlyInterface" BinaryKey="VBoxInstallHelper" DllEntry="CreateHostOnlyInterface" Execute="deferred" Return="check" Impersonate="no"/>
183 <CustomAction Id="ca_CreateHostOnlyInterfaceArgs" Property="ca_CreateHostOnlyInterface" Value="[INSTALLDIR]" Execute="immediate"/>
184
185 <CustomAction Id="ca_RemoveHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="RemoveHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/>
186 <CustomAction Id="ca_StopHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="StopHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/>
187
188 <CustomAction Id="ca_UpdateHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="UpdateHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/>
189 <CustomAction Id="ca_UpdateHostOnlyInterfacesArgs" Property="ca_UpdateHostOnlyInterfaces" Value="[INSTALLDIR]" Execute="immediate"/>
190
191 <CustomAction Id="ca_InstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/>
192 <CustomAction Id="ca_InstallNetFltArgs" Property="ca_InstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
193
194 <CustomAction Id="ca_RollbackInstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="rollback" Impersonate="no"/>
195 <CustomAction Id="ca_RollbackInstallNetFltArgs" Property="ca_RollbackInstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
196
197 <CustomAction Id="ca_UninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/>
198 <CustomAction Id="ca_UninstallNetFltArgs" Property="ca_UninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
199
200 <CustomAction Id="ca_RollbackUninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="rollback" Impersonate="no"/>
201 <CustomAction Id="ca_RollbackUninstallNetFltArgs" Property="ca_RollbackUninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
202<?endif ?>
203
204 <CustomAction Id="ca_StartVBox" FileKey="file_VirtualBox.exe" ExeCommand="" Return="asyncNoWait" Impersonate="yes" />
205
206 <!-- Detect old Sun installation -->
207 <!-- Force a manual uninstall of an already installed Sun VirtualBox version first -->
208 <!--<Property Id="VBOXSUN">
209 <RegistrySearch Id="RegSearchSunVersion" Root="HKLM" Key="SOFTWARE\Sun\VirtualBox" Name="Version" Type="raw" Win64="$(var.Property_Win64)"/>
210 </Property>
211 <Condition Message="!(loc.SunFound)">
212 NOT VBOXSUN
213 </Condition>-->
214
215 <!-- Detect old innotek installation -->
216 <!-- Force a manual uninstall of an already installed innotek VirtualBox version first -->
217 <Property Id="VBOXINNOTEK">
218 <RegistrySearch Id="RegSearchInnotekVersion" Root="HKLM" Key="SOFTWARE\Innotek\VirtualBox" Name="Version" Type="raw" Win64="$(var.Property_Win64)"/>
219 </Property>
220 <Condition Message="!(loc.InnotekFound)">
221 NOT VBOXINNOTEK
222 </Condition>
223
224 <Media Id="1" Cabinet="product.cab" EmbedCab="yes" />
225<?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
226 <Media Id="2" Cabinet="common.cab" EmbedCab="no" CompressionLevel="high" />
227<?endif ?>
228
229 <!-- Here comes the file/directory list. -->
230 <Directory Id="TARGETDIR" Name="SourceDir">
231 <Directory Id="$(var.Property_ProgramFiles)" Name="PFiles">
232 <Directory Id="INSTALLDIR" Name="$(env.VBOX_PRODUCT)">
233
234<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
235 <Directory Id="dir_Documents" Name="doc">
236 <!-- The documentation is a separate component. This allows to split the install process
237 into pieces if ever necessary. Maintenance is easier, too. The following component
238 will be installed in the "doc" folder. -->
239 <Component Id="cp_Docs" Guid="40BD12C5-89A8-4B81-8A5E-5EEE2C2763C4">
240 <?include $(env.PATH_TARGET)\Files_Doc.wxi ?>
241 </Component>
242 </Directory>
243<?endif ?>
244 <!-- Device driver directory -->
245 <Directory Id="dir_Drivers" Name="drivers">
246 <Directory Id="dir_VBoxDrv" Name="vboxdrv">
247 <Component Id="cp_VBoxDrv" Guid="D3E2F2BB-569F-46A2-836C-BDF30FF1EDF8" Win64="$(var.Property_Win64)">
248 <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes"
249 Legacy="$(var.Property_DriverLegacy)" Sequence="2" PlugAndPlayPrompt="no"/>
250 <File Id="file_VBoxDrv.sys" Name="VBoxDrv.sys" KeyPath="yes"
251 Source="$(env.PATH_OUT)\bin\VBoxDrv.sys"/>
252 <File Id="file_VBoxDrv.inf" Name="VBoxDrv.inf"
253 Source="$(env.PATH_OUT)\bin\VBoxDrv.inf" />
254<?if $(env.VBOX_SIGNING_MODE) != none ?>
255 <File Id="file_VBoxDrv.cat" Name="VBoxDrv.cat"
256 Source="$(env.PATH_OUT)\bin\VBoxDrv.cat" />
257<?endif ?>
258 </Component>
259 </Directory>
260
261 <Directory Id="dir_USB" Name="USB">
262 <Directory Id="dir_USBFilter" Name="filter">
263 <Component Id="cp_USBFilterDriver" Guid="B7D782D2-96DF-4775-A0E1-A76CF7B04B65" Win64="$(var.Property_Win64)">
264 <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes"
265 Legacy="$(var.Property_DriverLegacy)" Sequence="0" PlugAndPlayPrompt="no"/>
266 <File Id="file_VBoxUSBMon.sys" Name="VBoxUSBMon.sys"
267 Source="$(env.PATH_OUT)\bin\VBoxUSBMon.sys" />
268 <File Id="file_VBoxUSBMon.inf" Name="VBoxUSBMon.inf"
269 Source="$(env.PATH_OUT)\bin\VBoxUSBMon.inf" />
270<?if $(env.VBOX_SIGNING_MODE) != none ?>
271 <File Id="file_VBoxUSBMon.cat" Name="VBoxUSBMon.cat"
272 Source="$(env.PATH_OUT)\bin\VBoxUSBMon.cat" />
273<?endif ?>
274 </Component>
275 </Directory>
276
277 <Directory Id="dir_USBDevice" Name="device">
278 <Component Id="cp_USBDeviceDriver" Guid="010FE46A-E358-43E2-8BDC-38BC8BEC82E0" Win64="$(var.Property_Win64)">
279 <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes"
280 Legacy="$(var.Property_DriverLegacy)" Sequence="0" PlugAndPlayPrompt="no"/>
281 <File Id="file_VBoxUSB.sys" Name="VBoxUSB.sys"
282 Source="$(env.PATH_OUT)\bin\VBoxUSB.sys" />
283 <File Id="file_VBoxUSB.inf" Name="VBoxUSB.inf"
284 Source="$(env.PATH_OUT)\bin\VBoxUSB.inf" />
285<?if $(env.VBOX_SIGNING_MODE) != none ?>
286 <File Id="file_VBoxUSB.cat" Name="VBoxUSB.cat"
287 Source="$(env.PATH_OUT)\bin\VBoxUSB.cat" />
288<?endif ?>
289 </Component>
290 </Directory>
291 </Directory>
292
293<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
294 <Directory Id="dir_Network" Name="network">
295 <Directory Id="dir_NetFlt" Name="netflt">
296 <Component Id="cp_NetFltDriver" Guid="F0A02F6B-A349-42f8-A2EB-569DCAAAF846" Win64="$(var.Property_Win64)">
297 <File Id="file_VBoxNetFlt.sys" Name="VBoxNetFlt.sys" KeyPath="yes"
298 Source="$(env.PATH_OUT)\bin\VBoxNetFlt.sys" Checksum="yes"/>
299 <File Id="file_VBoxNetFltNobj.sys" Name="VBoxNetFltNobj.dll"
300 Source="$(env.PATH_OUT)\bin\VBoxNetFltNobj.dll" Checksum="yes"/>
301 <File Id="file_VBoxNetFltM.inf" Name="VBoxNetFltM.inf"
302 Source="$(env.PATH_OUT)\bin\VBoxNetFltM.inf" />
303 <File Id="file_VBoxNetFlt.inf" Name="VBoxNetFlt.inf"
304 Source="$(env.PATH_OUT)\bin\VBoxNetFlt.inf" />
305<?if $(env.VBOX_SIGNING_MODE) != none ?>
306 <File Id="file_VBoxNetFlt.cat" Name="VBoxNetFlt.cat"
307 Source="$(env.PATH_OUT)\bin\VBoxNetFlt.cat" />
308<?endif ?>
309 </Component>
310 </Directory>
311
312 <Directory Id="dir_NetAdp" Name="netadp">
313 <Component Id="cp_NetAdpDriver" Guid="7adf3e12-af3c-4d36-8bec-36d5064cf84f" Win64="$(var.Property_Win64)">
314 <File Id="file_VBoxNetAdp.sys" Name="VBoxNetAdp.sys" KeyPath="yes"
315 Source="$(env.PATH_OUT)\bin\VBoxNetAdp.sys" Checksum="yes"/>
316 <File Id="file_VBoxNetAdp.inf" Name="VBoxNetAdp.inf"
317 Source="$(env.PATH_OUT)\bin\VBoxNetAdp.inf" />
318<?if $(env.VBOX_SIGNING_MODE) != none ?>
319 <File Id="file_VBoxNetAdp.cat" Name="VBoxNetAdp.cat"
320 Source="$(env.PATH_OUT)\bin\VBoxNetAdp.cat" />
321<?endif ?>
322 </Component>
323 </Directory>
324 </Directory>
325<?endif ?>
326 </Directory> <!-- Directory "drivers" -->
327
328
329 <!-- National Language Support directory -->
330 <Directory Id="dir_NLS" Name="nls">
331 <Component Id="cp_NLS" Guid="D63517D7-1CF3-4D06-B3EE-C561E323069B" Win64="$(var.Property_Win64)">
332 <!-- Include the autogenerated NLS file list -->
333 <?include $(env.PATH_TARGET)\VBoxGuiNLS.wxi ?>
334 </Component>
335 </Directory>
336
337<?if $(env.VBOX_WITH_32_ON_64_MAIN_API) = "yes" ?>
338 <!-- The 32-bit client COM component (see also cp_MainCom below). -->
339 <Component Id="cp_MainCOM_x86" Guid="B600824E-4A25-2EB3-4B44-3D8CB7F9B92D" Win64="no">
340 <File Id="VBoxClient_x86" Name="VBoxClient-x86.dll"
341 Source="$(env.PATH_OUT)\bin\VBoxClient-x86.dll" KeyPath="yes">
342 </File>
343 <?include $(env.PATH_TARGET)\VirtualBox_TypeLib_x86.wxi ?>
344 </Component>
345<?endif?>
346
347 <!-- COM components have a separate entry mainly because of the KeyPath attribute (that hints the
348 TypeLib element where to take the TLB resource from) may appear only once per Component. -->
349 <Component Id="cp_MainCOM" Guid="CD4A3C6C-C2D5-428D-90A1-B6DA3D0777D6" Win64="$(var.Property_Win64)">
350
351 <!-- File ID *must not* be changed because of our typelib template generation file! -->
352 <File Id="VBoxSVC" Name="VBoxSVC.exe"
353 Source="$(env.PATH_OUT)\bin\VBoxSVC.exe">
354 </File>
355
356 <!-- We set KeyPath on this file to instruct TypeLib to read the TLB resource from it
357 and create appropriate Interface registry entries. Note that the same TLB is present
358 in VBoxSVC.exe - it's just a matter of choice which one to use -->
359 <!-- File ID *must not* be changed because of our typelib template generation file! -->
360 <File Id="VBoxC" Name="VBoxC.dll"
361 Source="$(env.PATH_OUT)\bin\VBoxC.dll" KeyPath="yes">
362 </File>
363
364 <!-- Include the autogenerated TypeLib block -->
365 <?include $(env.PATH_TARGET)\VirtualBox_TypeLib.wxi ?>
366
367 </Component>
368
369 <!--
370
371 <Component Id="Cp_StartMenuShortcut" Guid="1C137D24-E599-47BD-98D0-2F62F202A8EA" Win64="$(var.Property_Win64)">
372 <RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)" Type="string"
373 Value="installed" KeyPath="yes" />
374 <Shortcut Id="ShortcutStartMenuVBox" Directory="ProgramMenuDir"
375 Name="VirtualBox" WorkingDirectory="INSTALLDIR" Advertise="no" Target="VirtualBox.exe" />
376 <RemoveFolder Id="ShortcutStartMenuVBoxRemove" On="uninstall" />
377 </Component>-->
378
379 <!---->
380
381 <!-- All Binaries, DLLs (except COM) and drivers are in one component because they belong together. Additional
382 binaries e.g. test tools, utilities etc. should be in another component so they"re clearly separated. -->
383 <Component Id="cp_MainBinaries" Guid="5C8FE57A-F744-4DE0-AA3F-A563F486AD98" Win64="$(var.Property_Win64)">
384
385 <!-- Set required environment variables. -->
386 <Environment Id="env_VBoxInstallDir" Action="set" Name="VBOX_INSTALL_PATH"
387 System="yes" Part="last" Permanent="no" Value="[INSTALLDIR]" />
388
389 <!-- Register file extensions. Note: Extension Id's *must not* be changed! These specify the actual
390 file extension to handle. Also, here would be the place to add more fancy DDE stuff later.
391 Important: The IDs in "IconIndex" *must* be matching "Resources\resource.h". -->
392 <ProgId Id="progId_VirtualBox.Shell.vbox" Description="VirtualBox Machine Definition" Icon="file_VBoxRes.dll" IconIndex="-201">
393 <Extension Id="vbox" ContentType="application/x-virtualbox-vbox">
394 <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
395 </Extension>
396 </ProgId>
397 <ProgId Id="progId_VirtualBox.Shell.vbox-extpack" Description="VirtualBox Extension Pack" Icon="file_VBoxRes.dll" IconIndex="-202">
398 <Extension Id="vbox-extpack" ContentType="application/x-virtualbox-vbox-extpack">
399 <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
400 </Extension>
401 </ProgId>
402 <ProgId Id="progId_VirtualBox.Shell.ovf" Description="Open Virtualization Format" Icon="file_VBoxRes.dll" IconIndex="-301">
403 <Extension Id="ovf" ContentType="application/x-virtualbox-ovf">
404 <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
405 </Extension>
406 </ProgId>
407 <ProgId Id="progId_VirtualBox.Shell.ova" Description="Open Virtualization Format Archive" Icon="file_VBoxRes.dll" IconIndex="-302">
408 <Extension Id="ova" ContentType="application/x-virtualbox-ova">
409 <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
410 </Extension>
411 </ProgId>
412 <ProgId Id="progId_VirtualBox.Shell.vdi" Description="Virtual Disk Image" Icon="file_VBoxRes.dll" IconIndex="-303">
413 <Extension Id="vdi" ContentType="application/x-virtualbox-vdi" />
414 </ProgId>
415 <ProgId Id="progId_VirtualBox.Shell.vmdk" Description="Virtual Machine Disk Format" Icon="file_VBoxRes.dll" IconIndex="-304">
416 <Extension Id="vmdk" ContentType="application/x-virtualbox-vmdk" />
417 </ProgId>
418 <ProgId Id="progId_VirtualBox.Shell.vhd" Description="Virtual Hard Disk" Icon="file_VBoxRes.dll" IconIndex="-305">
419 <Extension Id="vhd" ContentType="application/x-virtualbox-vhd" />
420 </ProgId>
421 <ProgId Id="progId_VirtualBox.Shell.hdd" Description="Virtual Hard Disk" Icon="file_VBoxRes.dll" IconIndex="-306">
422 <Extension Id="hdd" ContentType="application/x-virtualbox-hdd" />
423 </ProgId>
424
425 <!-- Files -->
426<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
427 <!-- Include all user manual .CHM files (file is generated by makefile). -->
428 <?include $(env.PATH_TARGET)\Files_Main.wxi ?>
429<?endif ?>
430 <!-- Include all license files (file is generated by makefile). -->
431 <?include $(env.PATH_TARGET)\Files_License.wxi ?>
432
433 <!-- Frontends -->
434 <File Id="file_VBoxManage.exe" Name="VBoxManage.exe"
435 Source="$(env.PATH_OUT)\bin\VBoxManage.exe" />
436 <File Id="file_VBoxHeadless.exe" Name="VBoxHeadless.exe"
437 Source="$(env.PATH_OUT)\bin\VBoxHeadless.exe">
438 <!-- Create a simple shortcut for VBoxVRDP, which is not present anymore, pointing to VBoxHeadless.exe -->
439 <!-- <Shortcut Id="ShortcutVBoxVRDP" Directory="INSTALLDIR" Name="VBoxVRDP" Show="normal" WorkingDirectory="INSTALLDIR"/> -->
440 </File>
441 <File Id="file_VBoxBalloonCtrl.exe" Name="VBoxBalloonCtrl.exe"
442 Source="$(env.PATH_OUT)\bin\VBoxBalloonCtrl.exe"/>
443
444 <!-- Misc tools -->
445 <File Id="file_VBoxNetDHCP.exe" Name="VBoxNetDHCP.exe"
446 Source="$(env.PATH_OUT)\bin\VBoxNetDHCP.exe"/>
447 <File Id="file_VBoxNetNAT.exe" Name="VBoxNetNAT.exe"
448 Source="$(env.PATH_OUT)\bin\VBoxNetNAT.exe"/>
449<?if $(env.VBOX_WITH_EXTPACK) = "yes" ?>
450 <File Id="file_VBoxExtPackHelperApp.exe" Name="VBoxExtPackHelperApp.exe"
451 Source="$(env.PATH_OUT)\bin\VBoxExtPackHelperApp.exe"/>
452<?endif ?>
453 <!-- VBox DLL files -->
454 <File Id="file_VBoxDD.dll" Name="VBoxDD.dll"
455 Source="$(env.PATH_OUT)\bin\VBoxDD.dll" />
456 <File Id="file_VBoxDD2.dll" Name="VBoxDD2.dll"
457 Source="$(env.PATH_OUT)\bin\VBoxDD2.dll" />
458 <File Id="file_VBoxDDU.dll" Name="VBoxDDU.dll"
459 Source="$(env.PATH_OUT)\bin\VBoxDDU.dll" />
460 <File Id="file_VBoxRT.dll" Name="VBoxRT.dll"
461 Source="$(env.PATH_OUT)\bin\VBoxRT.dll" />
462 <File Id="file_VBoxREM.dll" Name="VBoxREM.dll"
463 Source="$(env.PATH_OUT)\bin\VBoxREM.dll" />
464<?if $(env.BUILD_TARGET_ARCH) = "x86" ?>
465 <File Id="file_VBoxREM32.dll" Name="VBoxREM32.dll"
466 Source="$(env.PATH_OUT)\bin\VBoxREM32.dll" />
467 <File Id="file_VBoxREM64.dll" Name="VBoxREM64.dll"
468 Source="$(env.PATH_OUT)\bin\VBoxREM64.dll" />
469<?endif ?>
470 <File Id="file_VBoxVMM.dll" Name="VBoxVMM.dll"
471 Source="$(env.PATH_OUT)\bin\VBoxVMM.dll" />
472<?if $(env.VBOX_WITH_VRDP) = "yes" ?>
473 <File Id="file_VBoxVRDP.dll" Name="VBoxVRDP.dll"
474 Source="$(env.PATH_OUT)\bin\VBoxVRDP.dll" />
475<?endif ?>
476 <File Id="file_VBoxSharedFolders.dll" Name="VBoxSharedFolders.dll"
477 Source="$(env.PATH_OUT)\bin\VBoxSharedFolders.dll" />
478 <File Id="file_VBoxSharedClipboard.dll" Name="VBoxSharedClipboard.dll"
479 Source="$(env.PATH_OUT)\bin\VBoxSharedClipboard.dll" />
480<?if $(env.VBOX_WITH_DRAG_AND_DROP)= "yes" ?>
481 <File Id="file_VBoxDragAndDropSvc.dll" Name="VBoxDragAndDropSvc.dll"
482 Source="$(env.PATH_OUT)\bin\VBoxDragAndDropSvc.dll" />
483<?endif ?>
484<?if $(env.VBOX_WITH_GUEST_PROPS) = "yes" ?>
485 <File Id="file_VBoxGuestPropSvc.dll" Name="VBoxGuestPropSvc.dll"
486 Source="$(env.PATH_OUT)\bin\VBoxGuestPropSvc.dll" />
487<?endif ?>
488<?if $(env.VBOX_WITH_GUEST_CONTROL) = "yes" ?>
489 <File Id="file_VBoxGuestControlSvc.dll" Name="VBoxGuestControlSvc.dll"
490 Source="$(env.PATH_OUT)\bin\VBoxGuestControlSvc.dll" />
491<?endif ?>
492 <File Id="file_VBoxHostChannel.dll" Name="VBoxHostChannel.dll"
493 Source="$(env.PATH_OUT)\bin\VBoxHostChannel.dll" />
494 <File Id="file_VBoxAuth.dll" Name="VBoxAuth.dll"
495 Source="$(env.PATH_OUT)\bin\VBoxAuth.dll" />
496 <File Id="file_VBoxAuthSimple.dll" Name="VBoxAuthSimple.dll"
497 Source="$(env.PATH_OUT)\bin\VBoxAuthSimple.dll" />
498
499 <!-- Include resource DLL (icons, ...). -->
500 <File Id="file_VBoxRes.dll" Name="VBoxRes.dll" DiskId="$(var.Property_DiskIdCommon)"
501 Source="$(env.PATH_OUT)\bin\VBoxRes.dll" />
502
503 <File Id="file_VMMGC.gc" Name="VMMGC.gc"
504 Source="$(env.PATH_OUT)\bin\VMMGC.gc" />
505 <File Id="file_VBoxDDGC.gc" Name="VBoxDDGC.gc"
506 Source="$(env.PATH_OUT)\bin\VBoxDDGC.gc" />
507 <File Id="file_VBoxDD2GC.gc" Name="VBoxDD2GC.gc"
508 Source="$(env.PATH_OUT)\bin\VBoxDD2GC.gc" />
509
510 <File Id="file_VMMR0.r0" Name="VMMR0.r0"
511 Source="$(env.PATH_OUT)\bin\VMMR0.r0" />
512 <File Id="file_VBoxDDR0.r0" Name="VBoxDDR0.r0"
513 Source="$(env.PATH_OUT)\bin\VBoxDDR0.r0" />
514 <File Id="file_VBoxDD2R0.r0" Name="VBoxDD2R0.r0"
515 Source="$(env.PATH_OUT)\bin\VBoxDD2R0.r0" />
516
517<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
518 <File Id="file_VBoxTestOGL.exe" Name="VBoxTestOGL.exe"
519 Source="$(env.PATH_OUT)\bin\VBoxTestOGL.exe" />
520<?endif ?>
521 <!-- Qt frontend -->
522 <File Id="file_VirtualBox.exe" Name="VirtualBox.exe"
523 Source="$(env.PATH_OUT)\bin\VirtualBox.exe">
524 </File>
525 <File Id="file_QtCoreVBox4.dll" Name="QtCoreVBox4.dll"
526 Source="$(env.PATH_OUT)\bin\QtCoreVBox4.dll" />
527 <File Id="file_QtGuiVBox4.dll" Name="QtGuiVBox4.dll"
528 Source="$(env.PATH_OUT)\bin\QtGuiVBox4.dll" />
529 <File Id="file_QtNetworkVBox4.dll" Name="QtNetworkVBox4.dll"
530 Source="$(env.PATH_OUT)\bin\QtNetworkVBox4.dll" />
531<?if $(env.VBOX_WITH_DEBUGGER_GUI) = "yes" ?>
532 <File Id="file_VBoxDbg.dll" Name="VBoxDbg.dll"
533 Source="$(env.PATH_OUT)\bin\VBoxDbg.dll" />
534<?endif ?>
535<?if $(env.VBOX_GUI_USE_QGL) = "yes" ?>
536 <File Id="file_QtOpenGLVBox4.dll" Name="QtOpenGLVBox4.dll"
537 Source="$(env.PATH_OUT)\bin\QtOpenGLVBox4.dll" />
538<?endif?>
539
540<?if $(env.VBOX_VCC_TOOL_STEM) = "VCC100" ?>
541 <!-- MS C/C++ v10.0 Runtime DLL files. -->
542 <File Id="file_msvcr100.dll" Name="msvcr100.dll"
543 Source="$(env.PATH_OUT)\bin\msvcr100.dll" />
544 <File Id="file_msvcp100.dll" Name="msvcp100.dll"
545 Source="$(env.PATH_OUT)\bin\msvcp100.dll" />
546<?endif?>
547<?if $(env.VBOX_VCC_TOOL_STEM) = "VCC110" ?>
548 <!-- MS C/C++ v11.0 Runtime DLL files. -->
549 <File Id="file_msvcr110.dll" Name="msvcr110.dll"
550 Source="$(env.PATH_OUT)\bin\msvcr110.dll" />
551 <File Id="file_msvcp110.dll" Name="msvcp110.dll"
552 Source="$(env.PATH_OUT)\bin\msvcp110.dll" />
553<?endif?>
554
555 <!-- EFI firmware -->
556<?if $(env.VBOX_WITH_EFIFW_PACKING) = "yes" ?>
557 <File Id="file_VBoxEFI32.fd" Name="VBoxEFI32.fd" DiskId="$(var.Property_DiskIdCommon)"
558 Source="$(env.PATH_OUT)\bin\VBoxEFI32.fd" />
559 <File Id="file_VBoxEFI64.fd" Name="VBoxEFI64.fd" DiskId="$(var.Property_DiskIdCommon)"
560 Source="$(env.PATH_OUT)\bin\VBoxEFI64.fd" />
561<?endif?>
562 <!-- VBox guest additions -->
563<?if $(env.VBOX_WITH_ADDITIONS_PACKING) = "yes" ?>
564 <?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
565 <File Id="file_VBoxGuestAdditions.iso" Name="VBoxGuestAdditions.iso" DiskId="$(var.Property_DiskIdCommon)"
566 Source="$(env.PATH_MULTIARCH_GUEST_ADDITIONS_ISO)\VBoxGuestAdditions.iso" />
567 <?else ?>
568 <File Id="file_VBoxGuestAdditions.iso" Name="VBoxGuestAdditions.iso"
569 Source="$(env.PATH_OUT)\bin\additions\VBoxGuestAdditions.iso" />
570 <?endif ?>
571<?endif ?>
572 <!-- Include key for VBox version -->
573 <?include $(env.PATH_TARGET)\VBoxKey.wxi ?>
574
575 </Component> <!-- MainBinaries -->
576
577<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
578 <!-- Qt accessible plugins -->
579 <Directory Id="dir_Accessible" Name="accessible">
580 <Component Id="cp_QtAccessible" Guid="12040EF9-D4A8-4FB2-A69C-CA2F5C354A45" Win64="$(var.Property_Win64)">
581 <File Id="file_qtaccessiblewidgets4.dll" Name="qtaccessiblewidgets4.dll"
582 Source="$(env.PATH_OUT)\bin\accessible\qtaccessiblewidgets4.dll" />
583 </Component>
584 </Directory>
585<?endif?>
586
587<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
588 <!-- Python bindings -->
589 <Directory Id="dir_SDK" Name="sdk">
590 <Directory Id="dir_SDKInstall" Name="install">
591 <Component Id="cp_VBoxPyInst" Guid="C9A40306-5102-11DE-A7BA-C3C555D89593" Win64="$(var.Property_Win64)">
592 <File Id="file_vboxapisetup.py" Name="vboxapisetup.py" DiskId="$(var.Property_DiskIdCommon)"
593 Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapisetup.py" />
594 </Component>
595 <Directory Id="dir_SDKVBoxAPI" Name="vboxapi">
596 <Component Id="cp_VBoxPyMod" Guid="DF19CB76-5102-11DE-943B-13C755D89593" Win64="$(var.Property_Win64)">
597 <File Id="file___init__.py" Name="__init__.py" DiskId="$(var.Property_DiskIdCommon)"
598 Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\__init__.py" />
599 <File Id="file_VirtualBox_constants.py" Name="VirtualBox_constants.py" DiskId="$(var.Property_DiskIdCommon)"
600 Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\VirtualBox_constants.py" />
601 </Component>
602 </Directory>
603 </Directory>
604 </Directory>
605<?endif?>
606
607<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
608 <Component Id="cp_VBoxCROpenGL" Guid="874A1297-835A-491D-8A9D-7E723BC29EE7" Win64="$(var.Property_Win64)">
609 <File Id="file_VBoxOGLhostcrutil.dll" Name="VBoxOGLhostcrutil.dll"
610 Source="$(env.PATH_OUT)\bin\VBoxOGLhostcrutil.dll" />
611 <File Id="file_VBoxOGLhosterrorspu.dll" Name="VBoxOGLhosterrorspu.dll"
612 Source="$(env.PATH_OUT)\bin\VBoxOGLhosterrorspu.dll" />
613 <File Id="file_VBoxOGLrenderspu.dll" Name="VBoxOGLrenderspu.dll"
614 Source="$(env.PATH_OUT)\bin\VBoxOGLrenderspu.dll" />
615 <File Id="file_VBoxSharedCrOpenGL.dll" Name="VBoxSharedCrOpenGL.dll"
616 Source="$(env.PATH_OUT)\bin\VBoxSharedCrOpenGL.dll" />
617 </Component>
618<?endif?>
619 <!-- SDL plugins -->
620 <Component Id="cp_VBoxSDLBinaries" Guid="F09D5FD9-E176-42B0-90A9-481BB18B0CB4" Win64="$(var.Property_Win64)">
621 <File Id="file_VBoxSDL.exe" Name="VBoxSDL.exe"
622 Source="$(env.PATH_OUT)\bin\VBoxSDL.exe" />
623 <File Id="file_SDL.dll" Name="SDL.dll"
624 Source="$(env.PATH_OUT)\bin\SDL.dll" />
625<?if $(env.VBOX_WITH_SECURELABEL) = "yes" ?>
626 <File Id="file_SDL_ttf.dll" Name="SDL_ttf.dll"
627 Source="$(env.PATH_OUT)\bin\SDL_ttf.dll" />
628<?endif?>
629 </Component> <!-- SDL plugins -->
630
631<?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?>
632 <!-- Webservice -->
633 <Component Id="cp_VBoxWebService" Guid="DD404F04-9874-43E9-AEE2-7762924D922E">
634 <File Id="file_VBoxWebSrv.exe" Name="VBoxWebSrv.exe"
635 Source="$(env.PATH_OUT)\bin\vboxwebsrv.exe" />
636 </Component>
637<?endif?>
638
639<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
640 <Component Id="cp_VBoxPythonBinding" Guid="293D7E11-78DA-4C31-AEED-AE2FE42F6881">
641 <Condition>PYTHON_INSTALLED</Condition>
642 </Component>
643<?endif?>
644 </Directory> <!-- Installation directory -->
645 </Directory> <!-- Windows program files directory -->
646
647 <!-- Set up special directory IDs for referencing to the start menu
648 or the Quick Launch bar.
649 See: http://msdn.microsoft.com/en-us/library/aa368276.aspx
650 http://wix.mindcapers.com/wiki/Shortcuts_in_WiX -->
651 <Directory Id="ProgramMenuFolder">
652 <Directory Id="dir_StartMenuVBox" Name="$(env.VBOX_PRODUCT)"/>
653 </Directory>
654
655 <Directory Id="DesktopFolder" Name="Desktop"/>
656
657 <Directory Id="AppDataFolder" Name="AppData">
658 <Directory Id="dir_AppDataMicrosoft" Name="Microsoft">
659 <Directory Id="dir_AppDataMSIE" Name="Internet Explorer">
660 <Directory Id="dir_QuicklaunchFolder" Name="Quick Launch"/>
661 </Directory>
662 </Directory>
663 </Directory>
664
665 <!-- Shortcut(s) in start menu -->
666 <Component Id="cp_StartMenuVBox" Guid="C2DC321A-CE63-40EE-8A98-724DF8BD12FB" Win64="$(var.Property_Win64)">
667 <Shortcut Id="sc_StartMenuVBox" Directory="dir_StartMenuVBox" Name="$(env.VBOX_PRODUCT)" Description="$(env.VBOX_PRODUCT)"
668 Target="[INSTALLDIR]VirtualBox.exe" WorkingDirectory="INSTALLDIR"/>
669 <RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)"
670 Type="string" Value="installed" KeyPath="yes" />
671 <?include $(env.PATH_TARGET)\Shortcuts_StartMenu.wxi ?>
672 </Component>
673
674 <Component Id="cp_DesktopShortcut" Guid="668F8A1A-F5CE-48B3-BB1A-3042EE27B279" Win64="$(var.Property_Win64)">
675 <Condition>INSTALLDESKTOPSHORTCUT</Condition>
676 <Shortcut Id="sc_DesktopVBox" Directory="DesktopFolder" Name="$(env.VBOX_PRODUCT)" Description="$(env.VBOX_PRODUCT)"
677 Target="[INSTALLDIR]VirtualBox.exe" WorkingDirectory="INSTALLDIR"/>
678 <RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)" Type="string"
679 Value="installed" KeyPath="yes" />
680 </Component>
681
682 <Component Id="cp_QuickLaunchVBox" Guid="CC19E026-938A-41CB-8E77-3F33296244B6" Win64="$(var.Property_Win64)">
683 <CreateFolder/>
684 <Condition>INSTALLQUICKLAUNCHSHORTCUT</Condition>
685 <Shortcut Id="sc_QuickLaunchVBox" Directory="dir_QuicklaunchFolder" Name="$(env.VBOX_PRODUCT)" Description="$(env.VBOX_PRODUCT)"
686 Target="[INSTALLDIR]VirtualBox.exe" WorkingDirectory="INSTALLDIR"/>
687 <RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)"
688 Type="string" Value="installed" KeyPath="yes" />
689 </Component>
690 </Directory> <!-- TARGETDIR -->
691
692 <!-- Note: Feature IDs *must not* be renamed to use any prefixes or such,
693 otherwise this will break manual selection using the ADDLOCAL= syntax
694 when using the command line / scripts (see VBox manual). -->
695 <Feature Id="VBoxApplication" Title="VirtualBox Application" Level="1"
696 Description="!(loc.VB_App)"
697 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
698 Absent="disallow" AllowAdvertise="no" >
699
700 <ComponentRef Id="cp_StartMenuVBox" />
701 <ComponentRef Id="cp_DesktopShortcut" />
702 <ComponentRef Id="cp_QuickLaunchVBox" />
703
704<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
705 <ComponentRef Id="cp_Docs" />
706<?endif?>
707 <ComponentRef Id="cp_NLS" />
708<?if $(env.VBOX_WITH_32_ON_64_MAIN_API) = "yes" ?>
709 <ComponentRef Id="cp_MainCOM_x86" />
710<?endif?>
711 <ComponentRef Id="cp_MainCOM" />
712 <ComponentRef Id="cp_MainBinaries" />
713<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
714 <ComponentRef Id="cp_QtAccessible" />
715<?endif?>
716<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
717 <ComponentRef Id="cp_VBoxPyInst" />
718 <ComponentRef Id="cp_VBoxPyMod" />
719<?endif?>
720
721<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
722 <ComponentRef Id="cp_VBoxCROpenGL" />
723<?endif?>
724 <ComponentRef Id="cp_VBoxSDLBinaries" />
725<?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?>
726 <ComponentRef Id="cp_VBoxWebService" />
727<?endif?>
728 <ComponentRef Id="cp_VBoxDrv" />
729
730 <Feature Id="VBoxUSB" Title="VirtualBox USB Support" Level="1"
731 Description="!(loc.VB_USBDriver)"
732 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
733 Absent="allow" AllowAdvertise="no" >
734 <ComponentRef Id="cp_USBFilterDriver" />
735 <ComponentRef Id="cp_USBDeviceDriver" />
736 </Feature>
737
738<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
739 <Feature Id="VBoxNetwork" Title="VirtualBox Networking" Level="1"
740 Description="!(loc.VB_Network)"
741 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
742 Absent="allow" AllowAdvertise="no" >
743 <Feature Id="VBoxNetworkFlt" Title="VirtualBox Bridged Networking" Level="1"
744 Description="!(loc.VB_NetFltDriver)"
745 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
746 Absent="allow" AllowAdvertise="no" >
747 <ComponentRef Id="cp_NetFltDriver" />
748 </Feature>
749 <Feature Id="VBoxNetworkAdp" Title="VirtualBox Host-Only Networking" Level="1"
750 Description="!(loc.VB_NetAdpDriver)"
751 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
752 Absent="allow" AllowAdvertise="no" >
753 <ComponentRef Id="cp_NetAdpDriver" />
754 </Feature>
755 </Feature>
756<?endif?>
757
758<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
759 <Feature Id="VBoxPython" Title="VirtualBox Python 2.x Support" Level="1"
760 Description="!(loc.VB_Python)"
761 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
762 Absent="allow" AllowAdvertise="no" >
763 <ComponentRef Id="cp_VBoxPythonBinding" />
764 </Feature>
765<?endif?>
766
767 </Feature>
768
769 <!-- Include user interface definition. -->
770 <?include UserInterface.wxi ?>
771
772 <InstallExecuteSequence>
773
774 <!--
775 To debug the action sequences, do: "msiexec /i <VBox.msi> /lar <Logfile>"
776
777 InstallUISequence (client side) is:
778 AppSearch
779 LaunchConditions
780 ValidateProductID
781 CostInitialize
782 FileCost
783 CostFinalize
784 ExecuteAction -> will pass control over to "InstallExecuteSequence"
785
786 The first six actions above will be repeated but skipped on the server
787 side if already run on the client side.
788
789 InstallExecuteSequence (server side) is:
790 <First six action from InstallUISequence>
791 .
792 InstallInitialize
793 .
794 InstallFinalize
795
796 The actions between InstallInitialize and InstallFinalize will be gone through twice:
797 - The first time the installer creates an installation script containing all actions in the right
798 sequence which need to get executed in a batch later. At this point the launch conditions for
799 custom actions must be met already!
800 - The second time the generated installation script will be run as-is.
801
802 Also, the InstallUISequence and InstallExecuteSequence tables run in different sessions which
803 need public properties (that is, UPPERCASE properties).
804 -->
805
806 <!-- AppSearch must be done before "RemoveExistingProducts" and before "FindRelatedProducts". -->
807 <AppSearch Sequence="1"></AppSearch>
808 <LaunchConditions After="AppSearch" />
809
810 <!-- First install the new version and then remove the old version. This is more efficient. -->
811 <RemoveExistingProducts Before="InstallValidate" />
812
813 <Custom Action="ca_OriginalTargetDir" After="FileCost"><![CDATA[(NOT INSTALLDIR) AND (NOT EXISTINGINSTALLDIR)]]></Custom>
814 <Custom Action="ca_DefaultTargetDir" Before="FileCost" ><![CDATA[NOT Installed AND (NOT INSTALLDIR) AND EXISTINGINSTALLDIR]]></Custom>
815
816 <Custom Action="ca_UninstallTAPInstances" Before="InstallFiles" >1</Custom>
817<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
818 <!-- Create host-only interfaces on first-time install. -->
819 <Custom Action="ca_CreateHostOnlyInterfaceArgs" Before="ca_CreateHostOnlyInterface" ><![CDATA[&VBoxNetworkAdp=3]]></Custom>
820 <Custom Action="ca_CreateHostOnlyInterface" Before="InstallFinalize" ><![CDATA[&VBoxNetworkAdp=3]]></Custom>
821 <!-- Don't remove the host-only interfaces on update, only on uninstall. -->
822 <Custom Action="ca_RemoveHostOnlyInterfaces" After="ca_UninstallNetFlt" ><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]></Custom>
823 <!-- First stop the existing host-only interfaces on update ... -->
824 <Custom Action="ca_StopHostOnlyInterfaces" Before="ca_UpdateHostOnlyInterfaces" ><![CDATA[UPGRADINGPRODUCTCODE]]></Custom>
825 <!-- ... then do the actual driver update. -->
826 <Custom Action="ca_UpdateHostOnlyInterfacesArgs" Before="ca_UpdateHostOnlyInterfaces" ><![CDATA[Installed AND UPGRADINGPRODUCTCODE]]></Custom>
827 <Custom Action="ca_UpdateHostOnlyInterfaces" Before="InstallFiles" ><![CDATA[Installed AND UPGRADINGPRODUCTCODE]]></Custom>
828
829 <Custom Action="ca_RollbackInstallNetFltArgs" Before="ca_RollbackInstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
830 <Custom Action="ca_RollbackInstallNetFlt" Before="ca_InstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
831 <Custom Action="ca_InstallNetFltArgs" Before="ca_InstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
832 <Custom Action="ca_InstallNetFlt" Before="ca_CreateHostOnlyInterface" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
833
834 <Custom Action="ca_RollbackUninstallNetFltArgs" Before="ca_RollbackUninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
835 <Custom Action="ca_RollbackUninstallNetFlt" Before="ca_UninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
836 <Custom Action="ca_UninstallNetFltArgs" Before="ca_UninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
837 <Custom Action="ca_UninstallNetFlt" After="InstallInitialize" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
838<?endif?>
839 <Custom Action="ca_InstallPythonAPIArgs" Before="ca_InstallPythonAPI" ><![CDATA[&VBoxPython=3]]></Custom>
840 <Custom Action="ca_InstallPythonAPI" Before="InstallFinalize" ><![CDATA[&VBoxPython=3]]></Custom>
841
842 <Custom Action="ca_InstallBrandingArgs" Before="ca_InstallBranding" ><![CDATA[NOT REMOVE]]></Custom>
843 <Custom Action="ca_InstallBranding" Before="InstallFinalize" ><![CDATA[NOT REMOVE]]></Custom>
844
845 <!-- Uninstall branding on complete uninstall, not on update. -->
846 <Custom Action="ca_UninstallBrandingArgs" Before="ca_UninstallBranding" ><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]></Custom>
847 <Custom Action="ca_UninstallBranding" Before="InstallFinalize" ><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]></Custom>
848
849 </InstallExecuteSequence>
850
851 </Product>
852</Wix>
853
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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