VirtualBox

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

Last change on this file since 50926 was 50289, checked in by vboxsync, 11 years ago

Installer/win: actually install VBoxCAPI.dll

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