VirtualBox.wxs revision 5535eb2eb67bee52b812c4b9bfaf70d185c4e2d9
af062818b47340eef15700d2f0211576ba3506eevboxsync<?xml version="1.0"?>
af062818b47340eef15700d2f0211576ba3506eevboxsync<!--
af062818b47340eef15700d2f0211576ba3506eevboxsync VirtualBox Windows Installation Script (WiX)
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync Copyright (C) 2006-2012 Oracle Corporation
af062818b47340eef15700d2f0211576ba3506eevboxsync
e64031e20c39650a7bc902a3e1aba613b9415deevboxsync This file is part of VirtualBox Open Source Edition (OSE), as
af062818b47340eef15700d2f0211576ba3506eevboxsync available from http://www.virtualbox.org. This file is free software;
af062818b47340eef15700d2f0211576ba3506eevboxsync you can redistribute it and/or modify it under the terms of the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync General Public License (GPL) as published by the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync Foundation, in version 2 as it comes in the "COPYING" file of the
af062818b47340eef15700d2f0211576ba3506eevboxsync VirtualBox OSE distribution. VirtualBox OSE is distributed in the
af062818b47340eef15700d2f0211576ba3506eevboxsync hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
af062818b47340eef15700d2f0211576ba3506eevboxsync-->
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync<?define Property_RegKey = "Software\$(env.VBOX_VENDOR_SHORT)\VirtualBox" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync<?define Property_RegKeyInstall = "Software\$(env.VBOX_VENDOR_SHORT)\VirtualBox\Install" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync<?define Property_Version = "$(env.VBOX_VERSION_STRING_RAW)" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync<?define Property_VersionExt = "$(env.VBOX_VERSION_STRING)" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync<?define Property_Upgrade = "yes" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync<?if $(env.BUILD_TARGET_ARCH) = "amd64" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <?define Property_ProgramFiles = "ProgramFiles64Folder" ?>
912b8dafdda09a31ee01d57d31afc4df96b80218vboxsync <?define Property_Platform = "x64" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <?define Property_Win64 = "yes" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync<?if $(env.VBOX_SIGNING_MODE) != none ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <?define Property_DriverLegacy = "no" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync<?else ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <?define Property_DriverLegacy = "yes" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync<?endif ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync<?else ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <?define Property_ProgramFiles = "ProgramFilesFolder" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <?define Property_Platform = "x86" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <?define Property_Win64 = "no" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync<?if $(env.VBOX_SIGNING_MODE) != none ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Note: Settings this to 'no' breaks win2k installs (!) -->
af062818b47340eef15700d2f0211576ba3506eevboxsync <?define Property_DriverLegacy = "yes" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync<?else ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <?define Property_DriverLegacy = "yes" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync<?endif ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync<?endif ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync<!-- If we build a combined installer (32- and 64-bit in one installer), we
af062818b47340eef15700d2f0211576ba3506eevboxsync use two installer "disks": One for all platform-specific stuff and one which
af062818b47340eef15700d2f0211576ba3506eevboxsync contains all common (platform independent) stuff (like manuals, bitmaps etc). -->
af062818b47340eef15700d2f0211576ba3506eevboxsync<?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <?define Property_DiskIdCommon = "2" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync<?else ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <?define Property_DiskIdCommon = "1" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync<?endif ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
af062818b47340eef15700d2f0211576ba3506eevboxsync xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Note: GUIDs in WiX *must* be uppercase! -->
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Always include an upgrade ID or otherwise upgrade installation will not be possible. When doing
af062818b47340eef15700d2f0211576ba3506eevboxsync a major upgrade (more than just fixing a few files) change the product GUID. We always do a major
af062818b47340eef15700d2f0211576ba3506eevboxsync upgrade even for minor VBox updates. For that only change the product ID and the product version.
af062818b47340eef15700d2f0211576ba3506eevboxsync The upgrade code *never* must be changed! -->
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Update / Upgrade policies:
af062818b47340eef15700d2f0211576ba3506eevboxsync Update Type Package Code Product Version Product Code Upgrade Code
af062818b47340eef15700d2f0211576ba3506eevboxsync Small update change don't change don't change don't change
af062818b47340eef15700d2f0211576ba3506eevboxsync Minor update change change don't change don't change
af062818b47340eef15700d2f0211576ba3506eevboxsync Major upgrade change change change don't change -->
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Old product ID: <Product Id="B59FE77B-738F-4f1c-AB48-3104895AF676"
af062818b47340eef15700d2f0211576ba3506eevboxsync Old upgrade code of innotek: UpgradeCode="F5FFAEBF-97AE-4038-8F91-4DE719456127" -->
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <Product Id="*"
af062818b47340eef15700d2f0211576ba3506eevboxsync UpgradeCode="C4BAD770-BFE8-4D2C-A592-693028A7215B"
af062818b47340eef15700d2f0211576ba3506eevboxsync Name="$(env.VBOX_PRODUCT) $(env.VBOX_VERSION_STRING)"
af062818b47340eef15700d2f0211576ba3506eevboxsync Language="!(loc.LANG)"
af062818b47340eef15700d2f0211576ba3506eevboxsync Codepage="1252"
af062818b47340eef15700d2f0211576ba3506eevboxsync Version="$(var.Property_Version)"
af062818b47340eef15700d2f0211576ba3506eevboxsync Manufacturer="$(env.VBOX_VENDOR)">
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <Package Id="*" Keywords="Installer"
af062818b47340eef15700d2f0211576ba3506eevboxsync Description="$(env.VBOX_PRODUCT) $(var.Property_VersionExt) installation package"
af062818b47340eef15700d2f0211576ba3506eevboxsync Comments="$(env.VBOX_PRODUCT) installation package"
af062818b47340eef15700d2f0211576ba3506eevboxsync Manufacturer="$(env.VBOX_VENDOR)"
af062818b47340eef15700d2f0211576ba3506eevboxsync InstallerVersion="200"
af062818b47340eef15700d2f0211576ba3506eevboxsync Compressed="yes"
af062818b47340eef15700d2f0211576ba3506eevboxsync InstallPrivileges="elevated"
af062818b47340eef15700d2f0211576ba3506eevboxsync Platform="$(var.Property_Platform)"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- *************************** Upgrade packages only ******************************* -->
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Minimum and Maximum specify the range of versions we are supposed to update with this upgrade.
af062818b47340eef15700d2f0211576ba3506eevboxsync IncludeMaximum and IncludeMinimum specify whether the bound value is actually included in the range or not
af062818b47340eef15700d2f0211576ba3506eevboxsync (IncludeMaximum = yes meaning to find versions below or equal to the version specified in Maximum while
af062818b47340eef15700d2f0211576ba3506eevboxsync IncludeMaximum = no only finds those below the Maximum).
af062818b47340eef15700d2f0211576ba3506eevboxsync OnlyDetect tells the installer not to remove the previous product. This is useful as long as we
af062818b47340eef15700d2f0211576ba3506eevboxsync only change files in the package. -->
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <Upgrade Id="C4BAD770-BFE8-4D2C-A592-693028A7215B"> <!-- Upgrade of Sun xVM VirtualBox >= v1.6.0 -->
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Upgrade is flagged if current-install is newer than or equal to package - TODO: should make a dialog appear asking user to confirm downgrade. -->
af062818b47340eef15700d2f0211576ba3506eevboxsync <!--- Setting "OnlyDetect" to "no" makes the installer uninstall an already newer installed version. -->
af062818b47340eef15700d2f0211576ba3506eevboxsync <UpgradeVersion Property="NEWERVERSIONDETECTED" Minimum="$(var.Property_Version)" OnlyDetect="no" />
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Flag is set if the install will trigger an upgrade of an existing install -->
af062818b47340eef15700d2f0211576ba3506eevboxsync <UpgradeVersion Property="PREVIOUSVERSIONSINSTALLED" Minimum="1.0.0.0" Maximum="$(var.Property_Version)" IncludeMaximum="yes" />
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Set a flag if we upgrade from versions <= 4.1.4 (later: 4.2.0) that might have removed
af062818b47340eef15700d2f0211576ba3506eevboxsync (additional) host-only interfaces. -->
af062818b47340eef15700d2f0211576ba3506eevboxsync <UpgradeVersion Property="BUG_HOSTONLYIFSREMOVED" Minimum="1.0.0.0" Maximum="4.1.14.*" IncludeMaximum="yes" />
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync </Upgrade>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- The product's icon table. -->
af062818b47340eef15700d2f0211576ba3506eevboxsync <Icon Id="IconVirtualBox" SourceFile="$(env.VBOX_WINDOWS_ICON_FILE)" />
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Global properties. -->
af062818b47340eef15700d2f0211576ba3506eevboxsync <Property Id="ARPPRODUCTICON">IconVirtualBox</Property>
af062818b47340eef15700d2f0211576ba3506eevboxsync <Property Id="ARPURLINFOABOUT">http://www.virtualbox.org</Property>
efc2dd03ce4c5327b18fd0493dde207135d4cc6evboxsync <Property Id="ARPURLUPDATEINFO">http://www.virtualbox.org</Property>
af062818b47340eef15700d2f0211576ba3506eevboxsync <Property Id="INSTALLDESKTOPSHORTCUT" Value="1"></Property>
af062818b47340eef15700d2f0211576ba3506eevboxsync <Property Id="INSTALLQUICKLAUNCHSHORTCUT" Value="1"></Property>
af062818b47340eef15700d2f0211576ba3506eevboxsync <Property Id="STARTVBOX" Value="1"></Property>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Install the product for all users on the system -->
af062818b47340eef15700d2f0211576ba3506eevboxsync <Property Id="ALLUSERS"><![CDATA[1]]></Property>
af062818b47340eef15700d2f0211576ba3506eevboxsync
ef701f66b75fc3edfec6928f74a0932c48dc71d7vboxsync <!-- Make sure installation will not start on anything other but the NT family -->
8daece1012c8dac65e6b148c77e189161ffc43f1vboxsync<?if $(env.BUILD_TARGET_ARCH) = "amd64" ?>
46113b5ae4abd2f36a62014a724179e55e5b3f75vboxsync <Condition Message="!(loc.Only64Bit)">
af062818b47340eef15700d2f0211576ba3506eevboxsync VersionNT64
af062818b47340eef15700d2f0211576ba3506eevboxsync </Condition>
af062818b47340eef15700d2f0211576ba3506eevboxsync<?else ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <Condition Message="!(loc.Only32Bit)">
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync NOT VersionNT64
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync </Condition>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <Condition Message="!(loc.WrongOS)">
af062818b47340eef15700d2f0211576ba3506eevboxsync NOT VersionNT=500 AND NOT Version9X AND NOT VersionNT64
af062818b47340eef15700d2f0211576ba3506eevboxsync </Condition>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync<?endif ?>
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <Condition Message="!(loc.NeedAdmin)">
af062818b47340eef15700d2f0211576ba3506eevboxsync Privileged
af062818b47340eef15700d2f0211576ba3506eevboxsync </Condition>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Force overwriting all files and re-create shortcuts to guarantee a working environment -->
5112e32d7072e280613921c982a6672f2c859cf3vboxsync <Property Id='REINSTALLMODE' Value='amus'/>
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <!-- Custom actions -->
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Figure out where a previous installation was, if any -->
af062818b47340eef15700d2f0211576ba3506eevboxsync<?if $(env.BUILD_TARGET_ARCH) = "amd64" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_OriginalTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[ProgramFiles64Folder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" />
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <Property Id="EXISTINGINSTALLDIR" Secure="yes">
af062818b47340eef15700d2f0211576ba3506eevboxsync <RegistrySearch Id="RegistryGetInstallPath" Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir" Type="raw" Win64="$(var.Property_Win64)"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync </Property>
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" />
af062818b47340eef15700d2f0211576ba3506eevboxsync<?else ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_OriginalTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[ProgramFilesFolder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" />
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <Property Id="EXISTINGINSTALLDIR" Secure="yes">
af062818b47340eef15700d2f0211576ba3506eevboxsync <RegistrySearch Id="RegistryGetInstallPath" Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir" Type="raw" Win64="$(var.Property_Win64)"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync </Property>
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" />
af062818b47340eef15700d2f0211576ba3506eevboxsync<?endif ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync <Binary Id="VBoxInstallHelper" SourceFile="$(env.PATH_OUT)\bin\VBoxInstallHelper.dll" />
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync <CustomAction Id="ca_CheckSerial" BinaryKey="VBoxInstallHelper" DllEntry="CheckSerial" Impersonate="no"/>
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync <CustomAction Id="ca_InstallPythonAPI" BinaryKey="VBoxInstallHelper" DllEntry="InstallPythonAPI" Execute="deferred" Return="check" Impersonate="no"/>
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync <CustomAction Id="ca_InstallPythonAPIArgs" Property="ca_InstallPythonAPI" Value="[INSTALLDIR]" Execute="immediate"/>
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync <CustomAction Id="ca_InstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="InstallBranding" Execute="deferred" Return="check" Impersonate="no"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_InstallBrandingArgs" Property="ca_InstallBranding" Value="[INSTALLDIR]" Execute="immediate"/>
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_UninstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="UninstallBranding" Execute="deferred" Return="check" Impersonate="no"/>
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync <CustomAction Id="ca_UninstallBrandingArgs" Property="ca_UninstallBranding" Value="[INSTALLDIR]" Execute="immediate"/>
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_UninstallTAPInstances" BinaryKey="VBoxInstallHelper"
af062818b47340eef15700d2f0211576ba3506eevboxsync DllEntry="UninstallTAPInstances" Execute="deferred" Return="check" Impersonate="no"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_CreateHostOnlyInterface" BinaryKey="VBoxInstallHelper" DllEntry="CreateHostOnlyInterface" Execute="deferred" Return="check" Impersonate="no"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_CreateHostOnlyInterfaceArgs" Property="ca_CreateHostOnlyInterface" Value="[INSTALLDIR]" Execute="immediate"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync
ef701f66b75fc3edfec6928f74a0932c48dc71d7vboxsync <CustomAction Id="ca_RemoveHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="RemoveHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/>
8daece1012c8dac65e6b148c77e189161ffc43f1vboxsync <CustomAction Id="ca_StopHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="StopHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/>
46113b5ae4abd2f36a62014a724179e55e5b3f75vboxsync
9a0dee30f5bea4fb02c0e836cd9689822e4645d1vboxsync <CustomAction Id="ca_UpdateHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="UpdateHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/>
9a0dee30f5bea4fb02c0e836cd9689822e4645d1vboxsync <CustomAction Id="ca_UpdateHostOnlyInterfacesArgs" Property="ca_UpdateHostOnlyInterfaces" Value="[INSTALLDIR]" Execute="immediate"/>
9a0dee30f5bea4fb02c0e836cd9689822e4645d1vboxsync
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync <CustomAction Id="ca_InstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/>
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync <CustomAction Id="ca_InstallNetFltArgs" Property="ca_InstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_RollbackInstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="rollback" Impersonate="no"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_RollbackInstallNetFltArgs" Property="ca_RollbackInstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_UninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_UninstallNetFltArgs" Property="ca_UninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_RollbackUninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="rollback" Impersonate="no"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_RollbackUninstallNetFltArgs" Property="ca_RollbackUninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync<?endif ?>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <CustomAction Id="ca_StartVBox" FileKey="file_VirtualBox.exe" ExeCommand="" Return="asyncNoWait" Impersonate="yes" />
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Detect old Sun installation -->
af062818b47340eef15700d2f0211576ba3506eevboxsync <!-- Force a manual uninstall of an already installed Sun VirtualBox version first -->
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync <!--<Property Id="VBOXSUN">
af062818b47340eef15700d2f0211576ba3506eevboxsync <RegistrySearch Id="RegSearchSunVersion" Root="HKLM" Key="SOFTWARE\Sun\VirtualBox" Name="Version" Type="raw" Win64="$(var.Property_Win64)"/>
af062818b47340eef15700d2f0211576ba3506eevboxsync </Property>
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync <Condition Message="!(loc.SunFound)">
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync NOT VBOXSUN
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync </Condition>-->
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <!-- Detect old innotek installation -->
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <!-- Force a manual uninstall of an already installed innotek VirtualBox version first -->
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <Property Id="VBOXINNOTEK">
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <RegistrySearch Id="RegSearchInnotekVersion" Root="HKLM" Key="SOFTWARE\Innotek\VirtualBox" Name="Version" Type="raw" Win64="$(var.Property_Win64)"/>
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync </Property>
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <Condition Message="!(loc.InnotekFound)">
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync NOT VBOXINNOTEK
ef701f66b75fc3edfec6928f74a0932c48dc71d7vboxsync </Condition>
efc2dd03ce4c5327b18fd0493dde207135d4cc6evboxsync
46113b5ae4abd2f36a62014a724179e55e5b3f75vboxsync <Media Id="1" Cabinet="product.cab" EmbedCab="yes" />
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync<?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync <Media Id="2" Cabinet="common.cab" EmbedCab="no" CompressionLevel="high" />
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync<?endif ?>
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <!-- Here comes the file/directory list. -->
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <Directory Id="TARGETDIR" Name="SourceDir">
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <Directory Id="$(var.Property_ProgramFiles)" Name="PFiles">
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <Directory Id="INSTALLDIR" Name="$(env.VBOX_PRODUCT)">
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <Directory Id="dir_Documents" Name="doc">
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <!-- The documentation is a separate component. This allows to split the install process
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync into pieces if ever necessary. Maintenance is easier, too. The following component
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync will be installed in the "doc" folder. -->
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <Component Id="cp_Docs" Guid="40BD12C5-89A8-4B81-8A5E-5EEE2C2763C4">
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <?include $(env.PATH_TARGET)\Files_Doc.wxi ?>
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync </Component>
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync </Directory>
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync<?endif ?>
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync <!-- Device driver directory -->
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <Directory Id="dir_Drivers" Name="drivers">
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <Directory Id="dir_VBoxDrv" Name="vboxdrv">
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync <Component Id="cp_VBoxDrv" Guid="D3E2F2BB-569F-46A2-836C-BDF30FF1EDF8" Win64="$(var.Property_Win64)">
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes"
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync Legacy="$(var.Property_DriverLegacy)" Sequence="2" PlugAndPlayPrompt="no"/>
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync <File Id="file_VBoxDrv.sys" Name="VBoxDrv.sys" KeyPath="yes"
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync Source="$(env.PATH_OUT)\bin\VBoxDrv.sys"/>
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync <File Id="file_VBoxDrv.inf" Name="VBoxDrv.inf"
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync Source="$(env.PATH_OUT)\bin\VBoxDrv.inf" />
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync<?if $(env.VBOX_SIGNING_MODE) != none ?>
0614bee07b5f88aa8803df43fde6d7185a9a7fffvboxsync <File Id="file_VBoxDrv.cat" Name="VBoxDrv.cat"
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync Source="$(env.PATH_OUT)\bin\VBoxDrv.cat" />
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync<?endif ?>
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync </Component>
c3ccebce8e3ebcbf117bea53f3128a599ba661fcvboxsync </Directory>
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync <Directory Id="dir_USB" Name="USB">
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync <Directory Id="dir_USBFilter" Name="filter">
ce7f3a54dfbfd6e58e1b3b1a8c7749628d408bfevboxsync <Component Id="cp_USBFilterDriver" Guid="B7D782D2-96DF-4775-A0E1-A76CF7B04B65" Win64="$(var.Property_Win64)">
ce7f3a54dfbfd6e58e1b3b1a8c7749628d408bfevboxsync <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes"
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync Legacy="$(var.Property_DriverLegacy)" Sequence="0" PlugAndPlayPrompt="no"/>
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync <File Id="file_VBoxUSBMon.sys" Name="VBoxUSBMon.sys"
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync Source="$(env.PATH_OUT)\bin\VBoxUSBMon.sys" />
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync <File Id="file_VBoxUSBMon.inf" Name="VBoxUSBMon.inf"
c3ccebce8e3ebcbf117bea53f3128a599ba661fcvboxsync Source="$(env.PATH_OUT)\bin\VBoxUSBMon.inf" />
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync<?if $(env.VBOX_SIGNING_MODE) != none ?>
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync <File Id="file_VBoxUSBMon.cat" Name="VBoxUSBMon.cat"
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync Source="$(env.PATH_OUT)\bin\VBoxUSBMon.cat" />
ce7f3a54dfbfd6e58e1b3b1a8c7749628d408bfevboxsync<?endif ?>
ce7f3a54dfbfd6e58e1b3b1a8c7749628d408bfevboxsync </Component>
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync </Directory>
4ca627b809c47f842ea1e994ae06516fc70ade2avboxsync
<Directory Id="dir_USBDevice" Name="device">
<Component Id="cp_USBDeviceDriver" Guid="010FE46A-E358-43E2-8BDC-38BC8BEC82E0" Win64="$(var.Property_Win64)">
<difxapp:Driver AddRemovePrograms="no" ForceInstall="yes"
Legacy="$(var.Property_DriverLegacy)" Sequence="0" PlugAndPlayPrompt="no"/>
<File Id="file_VBoxUSB.sys" Name="VBoxUSB.sys"
Source="$(env.PATH_OUT)\bin\VBoxUSB.sys" />
<File Id="file_VBoxUSB.inf" Name="VBoxUSB.inf"
Source="$(env.PATH_OUT)\bin\VBoxUSB.inf" />
<?if $(env.VBOX_SIGNING_MODE) != none ?>
<File Id="file_VBoxUSB.cat" Name="VBoxUSB.cat"
Source="$(env.PATH_OUT)\bin\VBoxUSB.cat" />
<?endif ?>
</Component>
</Directory>
</Directory>
<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
<Directory Id="dir_Network" Name="network">
<Directory Id="dir_NetFlt" Name="netflt">
<Component Id="cp_NetFltDriver" Guid="F0A02F6B-A349-42f8-A2EB-569DCAAAF846" Win64="$(var.Property_Win64)">
<File Id="file_VBoxNetFlt.sys" Name="VBoxNetFlt.sys" KeyPath="yes"
Source="$(env.PATH_OUT)\bin\VBoxNetFlt.sys" Checksum="yes"/>
<File Id="file_VBoxNetFltNobj.sys" Name="VBoxNetFltNobj.dll"
Source="$(env.PATH_OUT)\bin\VBoxNetFltNobj.dll" Checksum="yes"/>
<File Id="file_VBoxNetFltM.inf" Name="VBoxNetFltM.inf"
Source="$(env.PATH_OUT)\bin\VBoxNetFltM.inf" />
<File Id="file_VBoxNetFlt.inf" Name="VBoxNetFlt.inf"
Source="$(env.PATH_OUT)\bin\VBoxNetFlt.inf" />
<?if $(env.VBOX_SIGNING_MODE) != none ?>
<File Id="file_VBoxNetFlt.cat" Name="VBoxNetFlt.cat"
Source="$(env.PATH_OUT)\bin\VBoxNetFlt.cat" />
<?endif ?>
</Component>
</Directory>
<Directory Id="dir_NetAdp" Name="netadp">
<Component Id="cp_NetAdpDriver" Guid="7adf3e12-af3c-4d36-8bec-36d5064cf84f" Win64="$(var.Property_Win64)">
<File Id="file_VBoxNetAdp.sys" Name="VBoxNetAdp.sys" KeyPath="yes"
Source="$(env.PATH_OUT)\bin\VBoxNetAdp.sys" Checksum="yes"/>
<File Id="file_VBoxNetAdp.inf" Name="VBoxNetAdp.inf"
Source="$(env.PATH_OUT)\bin\VBoxNetAdp.inf" />
<?if $(env.VBOX_SIGNING_MODE) != none ?>
<File Id="file_VBoxNetAdp.cat" Name="VBoxNetAdp.cat"
Source="$(env.PATH_OUT)\bin\VBoxNetAdp.cat" />
<?endif ?>
</Component>
</Directory>
</Directory>
<?endif ?>
</Directory> <!-- Directory "drivers" -->
<!-- National Language Support directory -->
<Directory Id="dir_NLS" Name="nls">
<Component Id="cp_NLS" Guid="D63517D7-1CF3-4D06-B3EE-C561E323069B" Win64="$(var.Property_Win64)">
<!-- Include the autogenerated NLS file list -->
<?include $(env.PATH_TARGET)\VBoxGuiNLS.wxi ?>
</Component>
</Directory>
<!-- COM components have a separate entry mainly because of the KeyPath attribute (that hints the
TypeLib element where to take the TLB resource from) may appear only once per Component. -->
<Component Id="cp_MainCOM" Guid="CD4A3C6C-C2D5-428D-90A1-B6DA3D0777D6" Win64="$(var.Property_Win64)">
<!-- File ID *must not* be changed because of our typelib template generation file! -->
<File Id="VBoxSVC" Name="VBoxSVC.exe"
Source="$(env.PATH_OUT)\bin\VBoxSVC.exe">
</File>
<!-- We set KeyPath on this file to instruct TypeLib to read the TLB resource from it
and create appropriate Interface registry entries. Note that the same TLB is present
in VBoxSVC.exe - it's just a matter of choice which one to use -->
<!-- File ID *must not* be changed because of our typelib template generation file! -->
<File Id="VBoxC" Name="VBoxC.dll"
Source="$(env.PATH_OUT)\bin\VBoxC.dll" KeyPath="yes">
</File>
<!-- Include the autogenerated TypeLib block -->
<?include $(env.PATH_TARGET)\VirtualBox_TypeLib.wxi ?>
</Component>
<!--
<Component Id="Cp_StartMenuShortcut" Guid="1C137D24-E599-47BD-98D0-2F62F202A8EA" Win64="$(var.Property_Win64)">
<RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)" Type="string"
Value="installed" KeyPath="yes" />
<Shortcut Id="ShortcutStartMenuVBox" Directory="ProgramMenuDir"
Name="VirtualBox" WorkingDirectory="INSTALLDIR" Advertise="no" Target="VirtualBox.exe" />
<RemoveFolder Id="ShortcutStartMenuVBoxRemove" On="uninstall" />
</Component>-->
<!---->
<!-- All Binaries, DLLs (except COM) and drivers are in one component because they belong together. Additional
binaries e.g. test tools, utilities etc. should be in another component so they"re clearly separated. -->
<Component Id="cp_MainBinaries" Guid="5C8FE57A-F744-4DE0-AA3F-A563F486AD98" Win64="$(var.Property_Win64)">
<!-- Set required environment variables. -->
<Environment Id="env_VBoxInstallDir" Action="set" Name="VBOX_INSTALL_PATH"
System="yes" Part="last" Permanent="no" Value="[INSTALLDIR]" />
<!-- Register file extensions. Note: Extension Id's *must not* be changed! These specify the actual
file extension to handle. Also, here would be the place to add more fancy DDE stuff later.
Important: The IDs in "IconIndex" *must* be matching "Resources\resource.h". -->
<ProgId Id="progId_VirtualBox.Shell.vbox" Description="VirtualBox Machine Definition" Icon="file_VBoxRes.dll" IconIndex="-201">
<Extension Id="vbox" ContentType="application/x-virtualbox-vbox">
<Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
</Extension>
</ProgId>
<ProgId Id="progId_VirtualBox.Shell.vbox-extpack" Description="VirtualBox Extension Pack" Icon="file_VBoxRes.dll" IconIndex="-202">
<Extension Id="vbox-extpack" ContentType="application/x-virtualbox-vbox-extpack">
<Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
</Extension>
</ProgId>
<ProgId Id="progId_VirtualBox.Shell.ovf" Description="Open Virtualization Format" Icon="file_VBoxRes.dll" IconIndex="-301">
<Extension Id="ovf" ContentType="application/x-virtualbox-ovf">
<Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
</Extension>
</ProgId>
<ProgId Id="progId_VirtualBox.Shell.ova" Description="Open Virtualization Format Archive" Icon="file_VBoxRes.dll" IconIndex="-302">
<Extension Id="ova" ContentType="application/x-virtualbox-ova">
<Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
</Extension>
</ProgId>
<ProgId Id="progId_VirtualBox.Shell.vdi" Description="Virtual Disk Image" Icon="file_VBoxRes.dll" IconIndex="-303">
<Extension Id="vdi" ContentType="application/x-virtualbox-vdi" />
</ProgId>
<ProgId Id="progId_VirtualBox.Shell.vmdk" Description="Virtual Machine Disk Format" Icon="file_VBoxRes.dll" IconIndex="-304">
<Extension Id="vmdk" ContentType="application/x-virtualbox-vmdk" />
</ProgId>
<ProgId Id="progId_VirtualBox.Shell.vhd" Description="Virtual Hard Disk" Icon="file_VBoxRes.dll" IconIndex="-305">
<Extension Id="vhd" ContentType="application/x-virtualbox-vhd" />
</ProgId>
<ProgId Id="progId_VirtualBox.Shell.hdd" Description="Virtual Hard Disk" Icon="file_VBoxRes.dll" IconIndex="-306">
<Extension Id="hdd" ContentType="application/x-virtualbox-hdd" />
</ProgId>
<!-- Files -->
<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
<!-- Include all user manual .CHM files (file is generated by makefile). -->
<?include $(env.PATH_TARGET)\Files_Main.wxi ?>
<?endif ?>
<!-- Include all license files (file is generated by makefile). -->
<?include $(env.PATH_TARGET)\Files_License.wxi ?>
<!-- Frontends -->
<File Id="file_VBoxManage.exe" Name="VBoxManage.exe"
Source="$(env.PATH_OUT)\bin\VBoxManage.exe" />
<File Id="file_VBoxHeadless.exe" Name="VBoxHeadless.exe"
Source="$(env.PATH_OUT)\bin\VBoxHeadless.exe">
<!-- Create a simple shortcut for VBoxVRDP, which is not present anymore, pointing to VBoxHeadless.exe -->
<!-- <Shortcut Id="ShortcutVBoxVRDP" Directory="INSTALLDIR" Name="VBoxVRDP" Show="normal" WorkingDirectory="INSTALLDIR"/> -->
</File>
<File Id="file_VBoxBalloonCtrl.exe" Name="VBoxBalloonCtrl.exe"
Source="$(env.PATH_OUT)\bin\VBoxBalloonCtrl.exe"/>
<!-- Misc tools -->
<File Id="file_VBoxNetDHCP.exe" Name="VBoxNetDHCP.exe"
Source="$(env.PATH_OUT)\bin\VBoxNetDHCP.exe"/>
<?if $(env.VBOX_WITH_EXTPACK) = "yes" ?>
<File Id="file_VBoxExtPackHelperApp.exe" Name="VBoxExtPackHelperApp.exe"
Source="$(env.PATH_OUT)\bin\VBoxExtPackHelperApp.exe"/>
<?endif ?>
<!-- VBox DLL files -->
<File Id="file_VBoxDD.dll" Name="VBoxDD.dll"
Source="$(env.PATH_OUT)\bin\VBoxDD.dll" />
<File Id="file_VBoxDD2.dll" Name="VBoxDD2.dll"
Source="$(env.PATH_OUT)\bin\VBoxDD2.dll" />
<File Id="file_VBoxDDU.dll" Name="VBoxDDU.dll"
Source="$(env.PATH_OUT)\bin\VBoxDDU.dll" />
<File Id="file_VBoxRT.dll" Name="VBoxRT.dll"
Source="$(env.PATH_OUT)\bin\VBoxRT.dll" />
<File Id="file_VBoxREM.dll" Name="VBoxREM.dll"
Source="$(env.PATH_OUT)\bin\VBoxREM.dll" />
<?if $(env.BUILD_TARGET_ARCH) = "amd64" ?>
<File Id="file_VBoxREM2.rel" Name="VBoxREM2.rel"
Source="$(env.PATH_OUT)\bin\VBoxREM2.rel" />
<?else ?>
<File Id="file_VBoxREM32.dll" Name="VBoxREM32.dll"
Source="$(env.PATH_OUT)\bin\VBoxREM32.dll" />
<File Id="file_VBoxREM64.dll" Name="VBoxREM64.dll"
Source="$(env.PATH_OUT)\bin\VBoxREM64.dll" />
<?endif ?>
<File Id="file_VBoxVMM.dll" Name="VBoxVMM.dll"
Source="$(env.PATH_OUT)\bin\VBoxVMM.dll" />
<?if $(env.VBOX_WITH_VRDP) = "yes" ?>
<File Id="file_VBoxVRDP.dll" Name="VBoxVRDP.dll"
Source="$(env.PATH_OUT)\bin\VBoxVRDP.dll" />
<?endif ?>
<File Id="file_VBoxSharedFolders.dll" Name="VBoxSharedFolders.dll"
Source="$(env.PATH_OUT)\bin\VBoxSharedFolders.dll" />
<File Id="file_VBoxSharedClipboard.dll" Name="VBoxSharedClipboard.dll"
Source="$(env.PATH_OUT)\bin\VBoxSharedClipboard.dll" />
<?if $(env.VBOX_WITH_DRAG_AND_DROP)= "yes" ?>
<File Id="file_VBoxDragAndDropSvc.dll" Name="VBoxDragAndDropSvc.dll"
Source="$(env.PATH_OUT)\bin\VBoxDragAndDropSvc.dll" />
<?endif ?>
<?if $(env.VBOX_WITH_GUEST_PROPS) = "yes" ?>
<File Id="file_VBoxGuestPropSvc.dll" Name="VBoxGuestPropSvc.dll"
Source="$(env.PATH_OUT)\bin\VBoxGuestPropSvc.dll" />
<?endif ?>
<?if $(env.VBOX_WITH_GUEST_CONTROL) = "yes" ?>
<File Id="file_VBoxGuestControlSvc.dll" Name="VBoxGuestControlSvc.dll"
Source="$(env.PATH_OUT)\bin\VBoxGuestControlSvc.dll" />
<?endif ?>
<File Id="file_VBoxAuth.dll" Name="VBoxAuth.dll"
Source="$(env.PATH_OUT)\bin\VBoxAuth.dll" />
<File Id="file_VBoxAuthSimple.dll" Name="VBoxAuthSimple.dll"
Source="$(env.PATH_OUT)\bin\VBoxAuthSimple.dll" />
<!-- Include resource DLL (icons, ...). -->
<File Id="file_VBoxRes.dll" Name="VBoxRes.dll" DiskId="$(var.Property_DiskIdCommon)"
Source="$(env.PATH_OUT)\bin\VBoxRes.dll" />
<File Id="file_VMMGC.gc" Name="VMMGC.gc"
Source="$(env.PATH_OUT)\bin\VMMGC.gc" />
<File Id="file_VBoxDDGC.gc" Name="VBoxDDGC.gc"
Source="$(env.PATH_OUT)\bin\VBoxDDGC.gc" />
<File Id="file_VBoxDD2GC.gc" Name="VBoxDD2GC.gc"
Source="$(env.PATH_OUT)\bin\VBoxDD2GC.gc" />
<File Id="file_VMMR0.r0" Name="VMMR0.r0"
Source="$(env.PATH_OUT)\bin\VMMR0.r0" />
<File Id="file_VBoxDDR0.r0" Name="VBoxDDR0.r0"
Source="$(env.PATH_OUT)\bin\VBoxDDR0.r0" />
<File Id="file_VBoxDD2R0.r0" Name="VBoxDD2R0.r0"
Source="$(env.PATH_OUT)\bin\VBoxDD2R0.r0" />
<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
<File Id="file_VBoxTestOGL.exe" Name="VBoxTestOGL.exe"
Source="$(env.PATH_OUT)\bin\VBoxTestOGL.exe" />
<?endif ?>
<!-- Qt frontend -->
<File Id="file_VirtualBox.exe" Name="VirtualBox.exe"
Source="$(env.PATH_OUT)\bin\VirtualBox.exe">
</File>
<File Id="file_QtCoreVBox4.dll" Name="QtCoreVBox4.dll"
Source="$(env.PATH_OUT)\bin\QtCoreVBox4.dll" />
<File Id="file_QtGuiVBox4.dll" Name="QtGuiVBox4.dll"
Source="$(env.PATH_OUT)\bin\QtGuiVBox4.dll" />
<File Id="file_QtNetworkVBox4.dll" Name="QtNetworkVBox4.dll"
Source="$(env.PATH_OUT)\bin\QtNetworkVBox4.dll" />
<?if $(env.VBOX_WITH_DEBUGGER_GUI) = "yes" ?>
<File Id="file_VBoxDbg.dll" Name="VBoxDbg.dll"
Source="$(env.PATH_OUT)\bin\VBoxDbg.dll" />
<?endif ?>
<?if $(env.VBOX_GUI_USE_QGL) = "yes" ?>
<File Id="file_QtOpenGLVBox4.dll" Name="QtOpenGLVBox4.dll"
Source="$(env.PATH_OUT)\bin\QtOpenGLVBox4.dll" />
<?endif?>
<?if $(env.VBOX_VCC_TOOL_STEM) = "VCC100" ?>
<!-- MS C/C++ v10.0 Runtime DLL files. -->
<File Id="file_msvcr100.dll" Name="msvcr100.dll"
Source="$(env.PATH_OUT)\bin\msvcr100.dll" />
<File Id="file_msvcp100.dll" Name="msvcp100.dll"
Source="$(env.PATH_OUT)\bin\msvcp100.dll" />
<?endif?>
<?if $(env.VBOX_VCC_TOOL_STEM) = "VCC110" ?>
<!-- MS C/C++ v11.0 Runtime DLL files. -->
<File Id="file_msvcr110.dll" Name="msvcr110.dll"
Source="$(env.PATH_OUT)\bin\msvcr110.dll" />
<File Id="file_msvcp110.dll" Name="msvcp110.dll"
Source="$(env.PATH_OUT)\bin\msvcp110.dll" />
<?endif?>
<!-- EFI firmware -->
<?if $(env.VBOX_WITH_EFIFW_PACKING) = "yes" ?>
<File Id="file_VBoxEFI32.fd" Name="VBoxEFI32.fd" DiskId="$(var.Property_DiskIdCommon)"
Source="$(env.PATH_OUT)\bin\VBoxEFI32.fd" />
<File Id="file_VBoxEFI64.fd" Name="VBoxEFI64.fd" DiskId="$(var.Property_DiskIdCommon)"
Source="$(env.PATH_OUT)\bin\VBoxEFI64.fd" />
<?endif?>
<!-- VBox guest additions -->
<?if $(env.VBOX_WITH_ADDITIONS_PACKING) = "yes" ?>
<?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
<File Id="file_VBoxGuestAdditions.iso" Name="VBoxGuestAdditions.iso" DiskId="$(var.Property_DiskIdCommon)"
Source="$(env.PATH_MULTIARCH_GUEST_ADDITIONS_ISO)\VBoxGuestAdditions.iso" />
<?else ?>
<File Id="file_VBoxGuestAdditions.iso" Name="VBoxGuestAdditions.iso"
Source="$(env.PATH_OUT)\bin\additions\VBoxGuestAdditions.iso" />
<?endif ?>
<?endif ?>
<!-- Include key for VBox version -->
<?include $(env.PATH_TARGET)\VBoxKey.wxi ?>
</Component> <!-- MainBinaries -->
<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
<!-- Qt accessible plugins -->
<Directory Id="dir_Accessible" Name="accessible">
<Component Id="cp_QtAccessible" Guid="12040EF9-D4A8-4FB2-A69C-CA2F5C354A45" Win64="$(var.Property_Win64)">
<File Id="file_qtaccessiblewidgets4.dll" Name="qtaccessiblewidgets4.dll"
Source="$(env.PATH_OUT)\bin\accessible\qtaccessiblewidgets4.dll" />
</Component>
</Directory>
<?endif?>
<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
<!-- Python bindings -->
<Directory Id="dir_SDK" Name="sdk">
<Directory Id="dir_SDKInstall" Name="install">
<Component Id="cp_VBoxPyInst" Guid="C9A40306-5102-11DE-A7BA-C3C555D89593" Win64="$(var.Property_Win64)">
<File Id="file_vboxapisetup.py" Name="vboxapisetup.py" DiskId="$(var.Property_DiskIdCommon)"
Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapisetup.py" />
</Component>
<Directory Id="dir_SDKVBoxAPI" Name="vboxapi">
<Component Id="cp_VBoxPyMod" Guid="DF19CB76-5102-11DE-943B-13C755D89593" Win64="$(var.Property_Win64)">
<File Id="file___init__.py" Name="__init__.py" DiskId="$(var.Property_DiskIdCommon)"
Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\__init__.py" />
<File Id="file_VirtualBox_constants.py" Name="VirtualBox_constants.py" DiskId="$(var.Property_DiskIdCommon)"
Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\VirtualBox_constants.py" />
</Component>
</Directory>
</Directory>
</Directory>
<?endif?>
<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
<Component Id="cp_VBoxCROpenGL" Guid="874A1297-835A-491D-8A9D-7E723BC29EE7" Win64="$(var.Property_Win64)">
<File Id="file_VBoxOGLhostcrutil.dll" Name="VBoxOGLhostcrutil.dll"
Source="$(env.PATH_OUT)\bin\VBoxOGLhostcrutil.dll" />
<File Id="file_VBoxOGLhosterrorspu.dll" Name="VBoxOGLhosterrorspu.dll"
Source="$(env.PATH_OUT)\bin\VBoxOGLhosterrorspu.dll" />
<File Id="file_VBoxOGLrenderspu.dll" Name="VBoxOGLrenderspu.dll"
Source="$(env.PATH_OUT)\bin\VBoxOGLrenderspu.dll" />
<File Id="file_VBoxSharedCrOpenGL.dll" Name="VBoxSharedCrOpenGL.dll"
Source="$(env.PATH_OUT)\bin\VBoxSharedCrOpenGL.dll" />
</Component>
<?endif?>
<!-- SDL plugins -->
<Component Id="cp_VBoxSDLBinaries" Guid="F09D5FD9-E176-42B0-90A9-481BB18B0CB4" Win64="$(var.Property_Win64)">
<File Id="file_VBoxSDL.exe" Name="VBoxSDL.exe"
Source="$(env.PATH_OUT)\bin\VBoxSDL.exe" />
<File Id="file_SDL.dll" Name="SDL.dll"
Source="$(env.PATH_OUT)\bin\SDL.dll" />
<?if $(env.VBOX_WITH_SECURELABEL) = "yes" ?>
<File Id="file_SDL_ttf.dll" Name="SDL_ttf.dll"
Source="$(env.PATH_OUT)\bin\SDL_ttf.dll" />
<?endif?>
</Component> <!-- SDL plugins -->
<?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?>
<!-- Webservice -->
<Component Id="cp_VBoxWebService" Guid="DD404F04-9874-43E9-AEE2-7762924D922E">
<File Id="file_VBoxWebSrv.exe" Name="VBoxWebSrv.exe"
Source="$(env.PATH_OUT)\bin\vboxwebsrv.exe" />
</Component>
<?endif?>
<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
<Component Id="cp_VBoxPythonBinding" Guid="293D7E11-78DA-4C31-AEED-AE2FE42F6881">
<Condition>PYTHON_INSTALLED</Condition>
</Component>
<?endif?>
</Directory> <!-- Installation directory -->
</Directory> <!-- Windows program files directory -->
<!-- Set up special directory IDs for referencing to the start menu
or the Quick Launch bar.
See: http://msdn.microsoft.com/en-us/library/aa368276.aspx
http://wix.mindcapers.com/wiki/Shortcuts_in_WiX -->
<Directory Id="ProgramMenuFolder">
<Directory Id="dir_StartMenuVBox" Name="$(env.VBOX_PRODUCT)"/>
</Directory>
<Directory Id="DesktopFolder" Name="Desktop"/>
<Directory Id="AppDataFolder" Name="AppData">
<Directory Id="dir_AppDataMicrosoft" Name="Microsoft">
<Directory Id="dir_AppDataMSIE" Name="Internet Explorer">
<Directory Id="dir_QuicklaunchFolder" Name="Quick Launch"/>
</Directory>
</Directory>
</Directory>
<!-- Shortcut(s) in start menu -->
<Component Id="cp_StartMenuVBox" Guid="C2DC321A-CE63-40EE-8A98-724DF8BD12FB" Win64="$(var.Property_Win64)">
<Shortcut Id="sc_StartMenuVBox" Directory="dir_StartMenuVBox" Name="$(env.VBOX_PRODUCT)" Description="$(env.VBOX_PRODUCT)"
Target="[INSTALLDIR]VirtualBox.exe" WorkingDirectory="INSTALLDIR"/>
<RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)"
Type="string" Value="installed" KeyPath="yes" />
<?include $(env.PATH_TARGET)\Shortcuts_StartMenu.wxi ?>
</Component>
<Component Id="cp_DesktopShortcut" Guid="668F8A1A-F5CE-48B3-BB1A-3042EE27B279" Win64="$(var.Property_Win64)">
<Condition>INSTALLDESKTOPSHORTCUT</Condition>
<Shortcut Id="sc_DesktopVBox" Directory="DesktopFolder" Name="$(env.VBOX_PRODUCT)" Description="$(env.VBOX_PRODUCT)"
Target="[INSTALLDIR]VirtualBox.exe" WorkingDirectory="INSTALLDIR"/>
<RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)" Type="string"
Value="installed" KeyPath="yes" />
</Component>
<Component Id="cp_QuickLaunchVBox" Guid="CC19E026-938A-41CB-8E77-3F33296244B6" Win64="$(var.Property_Win64)">
<CreateFolder/>
<Condition>INSTALLQUICKLAUNCHSHORTCUT</Condition>
<Shortcut Id="sc_QuickLaunchVBox" Directory="dir_QuicklaunchFolder" Name="$(env.VBOX_PRODUCT)" Description="$(env.VBOX_PRODUCT)"
Target="[INSTALLDIR]VirtualBox.exe" WorkingDirectory="INSTALLDIR"/>
<RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)"
Type="string" Value="installed" KeyPath="yes" />
</Component>
</Directory> <!-- TARGETDIR -->
<!-- Note: Feature IDs *must not* be renamed to use any prefixes or such,
otherwise this will break manual selection using the ADDLOCAL= syntax
when using the command line / scripts (see VBox manual). -->
<Feature Id="VBoxApplication" Title="VirtualBox Application" Level="1"
Description="!(loc.VB_App)"
ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
Absent="disallow" AllowAdvertise="no" >
<ComponentRef Id="cp_StartMenuVBox" />
<ComponentRef Id="cp_DesktopShortcut" />
<ComponentRef Id="cp_QuickLaunchVBox" />
<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
<ComponentRef Id="cp_Docs" />
<?endif?>
<ComponentRef Id="cp_NLS" />
<ComponentRef Id="cp_MainCOM" />
<ComponentRef Id="cp_MainBinaries" />
<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
<ComponentRef Id="cp_QtAccessible" />
<?endif?>
<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
<ComponentRef Id="cp_VBoxPyInst" />
<ComponentRef Id="cp_VBoxPyMod" />
<?endif?>
<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
<ComponentRef Id="cp_VBoxCROpenGL" />
<?endif?>
<ComponentRef Id="cp_VBoxSDLBinaries" />
<?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?>
<ComponentRef Id="cp_VBoxWebService" />
<?endif?>
<ComponentRef Id="cp_VBoxDrv" />
<Feature Id="VBoxUSB" Title="VirtualBox USB Support" Level="1"
Description="!(loc.VB_USBDriver)"
ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
Absent="allow" AllowAdvertise="no" >
<ComponentRef Id="cp_USBFilterDriver" />
<ComponentRef Id="cp_USBDeviceDriver" />
</Feature>
<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
<Feature Id="VBoxNetwork" Title="VirtualBox Networking" Level="1"
Description="!(loc.VB_Network)"
ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
Absent="allow" AllowAdvertise="no" >
<Feature Id="VBoxNetworkFlt" Title="VirtualBox Bridged Networking" Level="1"
Description="!(loc.VB_NetFltDriver)"
ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
Absent="allow" AllowAdvertise="no" >
<ComponentRef Id="cp_NetFltDriver" />
</Feature>
<Feature Id="VBoxNetworkAdp" Title="VirtualBox Host-Only Networking" Level="1"
Description="!(loc.VB_NetAdpDriver)"
ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
Absent="allow" AllowAdvertise="no" >
<ComponentRef Id="cp_NetAdpDriver" />
</Feature>
</Feature>
<?endif?>
<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
<Feature Id="VBoxPython" Title="VirtualBox Python 2.x Support" Level="1"
Description="!(loc.VB_Python)"
ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
Absent="allow" AllowAdvertise="no" >
<ComponentRef Id="cp_VBoxPythonBinding" />
</Feature>
<?endif?>
</Feature>
<!-- Include user interface definition. -->
<?include UserInterface.wxi ?>
<InstallExecuteSequence>
<!--
To debug the action sequences, do: "msiexec /i <VBox.msi> /lar <Logfile>"
InstallUISequence (client side) is:
AppSearch
LaunchConditions
ValidateProductID
CostInitialize
FileCost
CostFinalize
ExecuteAction -> will pass control over to "InstallExecuteSequence"
The first six actions above will be repeated but skipped on the server
side if already run on the client side.
InstallExecuteSequence (server side) is:
<First six action from InstallUISequence>
.
InstallInitialize
.
InstallFinalize
The actions between InstallInitialize and InstallFinalize will be gone through twice:
- The first time the installer creates an installation script containing all actions in the right
sequence which need to get executed in a batch later. At this point the launch conditions for
custom actions must be met already!
- The second time the generated installation script will be run as-is.
Also, the InstallUISequence and InstallExecuteSequence tables run in different sessions which
need public properties (that is, UPPERCASE properties).
-->
<!-- AppSearch must be done before "RemoveExistingProducts" and before "FindRelatedProducts". -->
<AppSearch Sequence="1"></AppSearch>
<LaunchConditions After="AppSearch" />
<!-- First install the new version and then remove the old version. This is more efficient. -->
<InstallExecute Before="RemoveExistingProducts" />
<RemoveExistingProducts Before="InstallFinalize" />
<Custom Action="ca_OriginalTargetDir" After="FileCost"><![CDATA[(NOT INSTALLDIR) AND (NOT EXISTINGINSTALLDIR)]]></Custom>
<Custom Action="ca_DefaultTargetDir" Before="FileCost" ><![CDATA[NOT Installed AND (NOT INSTALLDIR) AND EXISTINGINSTALLDIR]]></Custom>
<Custom Action="ca_UninstallTAPInstances" Before="InstallFiles" >1</Custom>
<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
<!-- Create host-only interfaces on first-time install. -->
<Custom Action="ca_CreateHostOnlyInterfaceArgs" Before="ca_CreateHostOnlyInterface" ><![CDATA[&VBoxNetworkAdp=3 AND (NOT PREVIOUSVERSIONSINSTALLED OR BUG_HOSTONLYIFSREMOVED)]]></Custom>
<Custom Action="ca_CreateHostOnlyInterface" Before="InstallFinalize" ><![CDATA[&VBoxNetworkAdp=3 AND (NOT PREVIOUSVERSIONSINSTALLED OR BUG_HOSTONLYIFSREMOVED)]]></Custom>
<!-- Don't remove the host-only interfaces on update, only on uninstall. -->
<Custom Action="ca_RemoveHostOnlyInterfaces" After="ca_UninstallNetFlt" ><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]></Custom>
<!-- First stop the existing host-only interfaces on updat ... -->
<Custom Action="ca_StopHostOnlyInterfaces" Before="ca_UpdateHostOnlyInterfaces" ><![CDATA[UPGRADINGPRODUCTCODE]]></Custom>
<!-- ... then do the actual driver update. -->
<Custom Action="ca_UpdateHostOnlyInterfacesArgs" Before="ca_UpdateHostOnlyInterfaces" ><![CDATA[Installed AND UPGRADINGPRODUCTCODE]]></Custom>
<Custom Action="ca_UpdateHostOnlyInterfaces" Before="InstallFiles" ><![CDATA[Installed AND UPGRADINGPRODUCTCODE]]></Custom>
<Custom Action="ca_RollbackInstallNetFltArgs" Before="ca_RollbackInstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
<Custom Action="ca_RollbackInstallNetFlt" Before="ca_InstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
<Custom Action="ca_InstallNetFltArgs" Before="ca_InstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
<Custom Action="ca_InstallNetFlt" Before="ca_CreateHostOnlyInterface" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
<Custom Action="ca_RollbackUninstallNetFltArgs" Before="ca_RollbackUninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
<Custom Action="ca_RollbackUninstallNetFlt" Before="ca_UninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
<Custom Action="ca_UninstallNetFltArgs" Before="ca_UninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
<Custom Action="ca_UninstallNetFlt" After="InstallInitialize" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
<?endif?>
<Custom Action="ca_InstallPythonAPIArgs" Before="ca_InstallPythonAPI" ><![CDATA[&VBoxPython=3]]></Custom>
<Custom Action="ca_InstallPythonAPI" Before="InstallFinalize" ><![CDATA[&VBoxPython=3]]></Custom>
<Custom Action="ca_InstallBrandingArgs" Before="ca_InstallBranding" ><![CDATA[NOT REMOVE]]></Custom>
<Custom Action="ca_InstallBranding" Before="InstallFinalize" ><![CDATA[NOT REMOVE]]></Custom>
<!-- Uninstall branding on complete uninstall, not on update. -->
<Custom Action="ca_UninstallBrandingArgs" Before="ca_UninstallBranding" ><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]></Custom>
<Custom Action="ca_UninstallBranding" Before="InstallFinalize" ><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]></Custom>
</InstallExecuteSequence>
</Product>
</Wix>