VirtualBox.wxs revision 1dc390557681b95e72f5a7e3993352a07c040e10
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync VirtualBox Windows Installation Script (WiX)
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync Copyright (C) 2006-2010 Oracle Corporation
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync This file is part of VirtualBox Open Source Edition (OSE), as
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync available from http://www.virtualbox.org. This file is free software;
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync you can redistribute it and/or modify it under the terms of the GNU
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync General Public License (GPL) as published by the Free Software
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync Foundation, in version 2 as it comes in the "COPYING" file of the
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync VirtualBox OSE distribution. VirtualBox OSE is distributed in the
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync<?define Property_RegKey ="Software\$(env.VBOX_VENDOR_SHORT)\VirtualBox" ?>
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync<?define Property_Version = "$(env.VBOX_VERSION_STRING)" ?>
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync <?define Property_ProgramFiles = "ProgramFiles64Folder" ?>
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync <?define Property_ProgramFiles = "ProgramFilesFolder" ?>
a9c6fbd2431d2073a40c39e607e2292de3a1c5b3vboxsync <!-- Note: Settings this to 'no' breaks win2k installs (!) -->
7aee1015f573f6287b775b09d69f816f4be73031vboxsync<Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi">
7aee1015f573f6287b775b09d69f816f4be73031vboxsync <!-- Note: GUIDs in WiX *must* be uppercase! -->
7aee1015f573f6287b775b09d69f816f4be73031vboxsync <!-- Always include an upgrade ID or otherwise upgrade installation will not be possible. When doing
7aee1015f573f6287b775b09d69f816f4be73031vboxsync a major upgrade (more than just fixing a few files) change the product GUID. -->
7aee1015f573f6287b775b09d69f816f4be73031vboxsync <!-- Update / Upgrade policies:
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync Update Type Package Code Product Version Product Code Upgrade Code
7aee1015f573f6287b775b09d69f816f4be73031vboxsync Small update change don't change don't change don't change
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync Minor update change change don't change don't change
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync Major upgrade change change change don't change -->
7aee1015f573f6287b775b09d69f816f4be73031vboxsync <!-- Old product ID: <Product Id="B59FE77B-738F-4f1c-AB48-3104895AF676"
7aee1015f573f6287b775b09d69f816f4be73031vboxsync Old upgrade code of innotek: UpgradeCode="F5FFAEBF-97AE-4038-8F91-4DE719456127" -->
ad9cb6f85ccdc5ed06252478ebd1dab3132809a0vboxsync UpgradeCode="C4BAD770-BFE8-4D2C-A592-693028A7215B"
Name="$(env.VBOX_PRODUCT) $(env.VBOX_VERSION_STRING)"
Version="$(var.Property_Version)"
Manufacturer="$(env.VBOX_VENDOR)">
Description="$(env.VBOX_PRODUCT) $(var.Property_Version) installation package"
Comments="$(env.VBOX_PRODUCT) installation package"
Manufacturer="$(env.VBOX_VENDOR)"
Platforms="$(var.Property_Platform)"/>
IncludeMaximum and IncludeMinimum specify whether the bound value is actually included in the range or not
(IncludeMaximum = yes meaning to find versions below or equal to the version specified in Maximum while
<Upgrade Id="C4BAD770-BFE8-4D2C-A592-693028A7215B"> <!-- Upgrade of Sun xVM VirtualBox >= v1.6.0 -->
<!-- Upgrade is flagged if current-install is newer than or equal to package - TODO: should make a dialog appear asking user to confirm downgrade. -->
<!--- Setting "OnlyDetect" to "no" makes the installer uninstall an already newer installed version. -->
<UpgradeVersion Property="NEWERVERSIONDETECTED" Minimum="$(var.Property_Version)" OnlyDetect="no" />
<UpgradeVersion Property="PREVIOUSVERSIONSINSTALLED" Minimum="1.0.0.0" Maximum="$(var.Property_Version)" IncludeMaximum="yes" />
<CustomAction Id="OriginalTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[ProgramFiles64Folder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" />
<RegistrySearch Id="RegistryGetInstallPath" Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir" Type="raw" Win64="$(var.Property_Win64)"/>
<CustomAction Id="DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" />
<CustomAction Id="OriginalTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[ProgramFilesFolder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" />
<RegistrySearch Id="RegistryGetInstallPath" Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir" Type="raw" Win64="$(var.Property_Win64)"/>
<CustomAction Id="DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" />
<CustomAction Id="CheckSerial" BinaryKey="VBoxInstallHelper" DllEntry="CheckSerial" Impersonate="no"/>
<CustomAction Id="InstallPythonAPI" BinaryKey="VBoxInstallHelper" DllEntry="InstallPythonAPI" Impersonate="no"/>
<CustomAction Id="InstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="InstallBranding" Impersonate="no"/>
<CustomAction Id="UninstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="UninstallBranding" Impersonate="no"/>
<CustomAction Id="CreateHostOnlyInterfaceArgs" Property="CreateHostOnlyInterface" Value="[INSTALLDIR]" Execute="immediate"/>
<CustomAction Id="CreateHostOnlyInterface" BinaryKey="VBoxInstallHelper" DllEntry="CreateHostOnlyInterface" Execute="deferred" Return="check" Impersonate="no"/>
<CustomAction Id="RemoveHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="RemoveHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/>
<CustomAction Id="InstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/>
<CustomAction Id="InstallNetFltArgs" Property="InstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
<CustomAction Id="RollbackInstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="rollback" Impersonate="no"/>
<CustomAction Id="RollbackInstallNetFltArgs" Property="RollbackInstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
<CustomAction Id="UninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/>
<CustomAction Id="UninstallNetFltArgs" Property="UninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
<CustomAction Id="RollbackUninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="rollback" Impersonate="no"/>
<CustomAction Id="RollbackUninstallNetFltArgs" Property="RollbackUninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
<RegistrySearch Id="RegSearchSunVersion" Root="HKLM" Key="SOFTWARE\Sun\VirtualBox" Name="Version" Type="raw" Win64="$(var.Property_Win64)"/>
<RegistrySearch Id="RegSearchInnotekVersion" Root="HKLM" Key="SOFTWARE\Innotek\VirtualBox" Name="Version" Type="raw" Win64="$(var.Property_Win64)"/>
Source="$(env.PATH_OUT)\bin\VBoxDrv.sys"/>
Source="$(env.PATH_OUT)\bin\VBoxDrv.inf" />
Source="$(env.PATH_OUT)\bin\VBoxDrv.cat" />
Source="$(env.PATH_OUT)\bin\VBoxUSBMon.sys" />
Source="$(env.PATH_OUT)\bin\VBoxUSBMon.inf" />
Source="$(env.PATH_OUT)\bin\VBoxUSBMon.cat" />
Source="$(env.PATH_OUT)\bin\VBoxUSB.sys" />
Source="$(env.PATH_OUT)\bin\VBoxUSB.inf" />
Source="$(env.PATH_OUT)\bin\VBoxUSB.cat" />
<Component Id="NetFltDriver" Guid="F0A02F6B-A349-42f8-A2EB-569DCAAAF846" Win64="$(var.Property_Win64)">
<File Id="vboxnetfltsys" Name="VBoxNFlt.sys" LongName="VBoxNetFlt.sys" DiskId="1" Vital="yes" KeyPath="yes"
Source="$(env.PATH_OUT)\bin\VBoxNetFlt.sys"
<File Id="vboxnetfltnotifydll" Name="VBoxNFN.dll" LongName="VBoxNetFltNotify.dll" DiskId="1" Vital="yes"
Source="$(env.PATH_OUT)\bin\VBoxNetFltNotify.dll"
Source="$(env.PATH_OUT)\bin\VBoxNetFlt.inf" />
Source="$(env.PATH_OUT)\bin\VBoxNetFlt.cat" />
Source="$(env.PATH_OUT)\bin\VBoxNetFlt_m.inf" />
<Component Id="NetAdpDriver" Guid="7adf3e12-af3c-4d36-8bec-36d5064cf84f" Win64="$(var.Property_Win64)">
<File Id="vboxnetadpsys" Name="VBoxNAdp.sys" LongName="VBoxNetAdp.sys" DiskId="1" Vital="yes" KeyPath="yes"
Source="$(env.PATH_OUT)\bin\VBoxNetAdp.sys"
Source="$(env.PATH_OUT)\bin\VBoxNetAdp.inf" />
Source="$(env.PATH_OUT)\bin\VBoxNetAdp.cat" />
Source="$(env.PATH_OUT)\bin\VBoxSVC.exe">
in VBoxSVC.exe - it's just a matter of choice which one to use -->
Source="$(env.PATH_OUT)\bin\VBoxC.dll"
<Component Id="DesktopShortcut" Guid="668F8A1A-F5CE-48B3-BB1A-3042EE27B279" Win64="$(var.Property_Win64)">
<Component Id="QuicklaunchShortcut" Guid="CC19E026-938A-41CB-8E77-3F33296244B6" Win64="$(var.Property_Win64)">
<!-- 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="MainBinaries" Guid="5C8FE57A-F744-4DE0-AA3F-A563F486AD98" Win64="$(var.Property_Win64)">
Important: The IDs in "IconIndex" *must* be matching "Resources\resource.h". -->
<ProgId Id="VirtualBox.Shell.vbox" Description="VirtualBox Machine Description" Icon="[#vboxresdll]" IconIndex="-201">
<ProgId Id="VirtualBox.Shell.vbox-extpack" Description="VirtualBox Extension Pack" Icon="[#vboxresdll]" IconIndex="-202">
<ProgId Id="VirtualBox.Shell.ovf" Description="Open Virtualization Format" Icon="[#vboxresdll]" IconIndex="-301">
<ProgId Id="VirtualBox.Shell.ova" Description="Open Virtualization Format Archive" Icon="[#vboxresdll]" IconIndex="-302">
<!-- The "Name" attribute must always be present. If the name is longer than 8.3 the additional "LongName"
Source="$(env.PATH_OUT)\bin\VirtualBox.exe">
Source="$(env.PATH_OUT)\bin\VBoxDbg.dll" />
Source="$(env.PATH_OUT)\bin\VBoxManage.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"/>
Source="$(env.PATH_OUT)\bin\VBoxNetDHCP.exe"/>
Source="$(env.PATH_OUT)\bin\VBoxDD.dll" />
Source="$(env.PATH_OUT)\bin\VBoxDD2.dll" />
Source="$(env.PATH_OUT)\bin\VBoxDDU.dll" />
Source="$(env.PATH_OUT)\bin\VBoxRT.dll" />
Source="$(env.PATH_OUT)\bin\VBoxREM.dll" />
Source="$(env.PATH_OUT)\bin\VBoxREM2.rel" />
Source="$(env.PATH_OUT)\bin\VBoxREM32.dll" />
Source="$(env.PATH_OUT)\bin\VBoxREM64.dll" />
Source="$(env.PATH_OUT)\bin\VBoxVMM.dll" />
Source="$(env.PATH_OUT)\bin\VBoxVRDP.dll" />
<File Id="vboxshfolderdll" Name="VBoxSF.dll" LongName="VBoxSharedFolders.dll" DiskId="1" Vital="yes"
Source="$(env.PATH_OUT)\bin\VBoxSharedFolders.dll" />
<File Id="vboxshclpbrddll" Name="VBoxClip.dll" LongName="VBoxSharedClipboard.dll" DiskId="1" Vital="yes"
Source="$(env.PATH_OUT)\bin\VBoxSharedClipboard.dll" />
<File Id="vboxguestpropdll" Name="VBoxProp.dll" LongName="VBoxGuestPropSvc.dll" DiskId="1" Vital="yes"
Source="$(env.PATH_OUT)\bin\VBoxGuestPropSvc.dll" />
<File Id="vboxguestctrldll" Name="VBoxCtrl.dll" LongName="VBoxGuestControlSvc.dll" DiskId="1" Vital="yes"
Source="$(env.PATH_OUT)\bin\VBoxGuestControlSvc.dll" />
Source="$(env.PATH_OUT)\bin\VBoxAuth.dll" />
<File Id="vboxauthsimpledll" Name="VBoxASim.dll" LongName="VBoxAuthSimple.dll" DiskId="1" Vital="yes"
Source="$(env.PATH_OUT)\bin\VBoxAuthSimple.dll" />
<File Id="vboxresdll" LongName="VBoxRes.dll" Name="VBoxRes.dll" DiskId="$(var.Property_DiskIdCommon)" Vital="yes"
Source="$(env.PATH_OUT)\bin\VBoxRes.dll" />
Source="$(env.PATH_OUT)\bin\VMMGC.gc" />
Source="$(env.PATH_OUT)\bin\VBoxDDGC.gc" />
Source="$(env.PATH_OUT)\bin\VBoxDD2GC.gc" />
Source="$(env.PATH_OUT)\bin\VMMR0.r0" />
Source="$(env.PATH_OUT)\bin\VBoxDDR0.r0" />
Source="$(env.PATH_OUT)\bin\VBoxDD2R0.r0" />
Source="$(env.PATH_OUT)\bin\VBoxTestOGL.exe" />
Source="$(env.PATH_OUT)\bin\QtCoreVBox4.dll" />
Source="$(env.PATH_OUT)\bin\QtGuiVBox4.dll" />
Source="$(env.PATH_OUT)\bin\QtNetworkVBox4.dll" />
Source="$(env.PATH_OUT)\bin\QtOpenGLVBox4.dll" />
<File Id="vc80crtmft" Name="VC80CRT.mft" LongName="Microsoft.VC80.CRT.manifest" DiskId="1" Vital="yes"
Source="$(env.PATH_OUT)\bin\Microsoft.VC80.CRT\Microsoft.VC80.CRT.manifest" />
Source="$(env.PATH_OUT)\bin\Microsoft.VC80.CRT\msvcr80.dll" />
Source="$(env.PATH_OUT)\bin\Microsoft.VC80.CRT\msvcp80.dll" />
Source="$(env.PATH_OUT)\bin\msvcp71.dll" />
Source="$(env.PATH_OUT)\bin\msvcrt.dll" />
Source="$(env.PATH_OUT)\bin\msvcr71.dll" />
Source="$(env.PATH_OUT)\bin\VBoxEFI32.fd" />
Source="$(env.PATH_OUT)\bin\VBoxEFI64.fd" />
Source="$(env.PATH_OUT)\bin\VBoxEFI32.fd" />
Source="$(env.PATH_OUT)\bin\VBoxEFI64.fd" />
<File Id="VBoxGuestAdditions.iso" Name="VBoxAdd.iso" LongName="VBoxGuestAdditions.iso" DiskId="2" Vital="yes"
Source="$(env.PATH_MULTIARCH_GUEST_ADDITIONS_ISO)\VBoxGuestAdditions.iso" />
Source="$(env.PATH_OUT)\bin\additions\VBoxGuestAdditions.iso" />
<File Id="qtaccessibleplugindll" Name="qtacsw4.dll" LongName="qtaccessiblewidgets4.dll" DiskId="1" Vital="yes"
Source="$(env.PATH_OUT)\bin\accessible\qtaccessiblewidgets4.dll" />
<File Id="vboxapisetup" Name="pysetup.py" LongName="vboxapisetup.py" DiskId="$(var.Property_DiskIdCommon)" Vital="yes"
Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapisetup.py" />
Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\__init__.py" />
<File Id="VirtualBox_constants.py" Name="vbconst.py" LongName="VirtualBox_constants.py" DiskId="$(var.Property_DiskIdCommon)" Vital="yes"
Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\VirtualBox_constants.py" />
<Component Id="VBoxCROpenGL" Guid="874A1297-835A-491D-8A9D-7E723BC29EE7" Win64="$(var.Property_Win64)">
<File Id="vboxoglhostcrutil" Name="VbGlHCRU.dll" LongName="VBoxOGLhostcrutil.dll" DiskId="1" Vital="yes"
Source="$(env.PATH_OUT)\bin\VBoxOGLhostcrutil.dll" />
<File Id="vboxoglhosterrorspu" Name="VbGlHers.dll" LongName="VBoxOGLhosterrorspu.dll" DiskId="1" Vital="yes"
Source="$(env.PATH_OUT)\bin\VBoxOGLhosterrorspu.dll" />
<File Id="vboxoglrenderspu" Name="VbGlRndr.dll" LongName="VBoxOGLrenderspu.dll" DiskId="1" Vital="yes"
Source="$(env.PATH_OUT)\bin\VBoxOGLrenderspu.dll" />
<File Id="vboxsharedcropengl" Name="VbShCRGL.dll" LongName="VBoxSharedCrOpenGL.dll" DiskId="1" Vital="yes"
Source="$(env.PATH_OUT)\bin\VBoxSharedCrOpenGL.dll" />
<Component Id="VBoxSDLBinaries" Guid="F09D5FD9-E176-42B0-90A9-481BB18B0CB4" Win64="$(var.Property_Win64)">
Source="$(env.PATH_OUT)\bin\VBoxSDL.exe" />
Source="$(env.PATH_OUT)\bin\SDL.dll" />
Source="$(env.PATH_OUT)\bin\SDL_ttf.dll" />
Source="$(env.PATH_OUT)\bin\vboxwebsrv.exe" />
Description="$(loc.VB_App)"
Description="$(loc.VB_USBDriver)"
Description="$(loc.VB_Network)"
Description="$(loc.VB_NetFltDriver)"
Description="$(loc.VB_NetAdpDriver)"
Description="$(loc.VB_Python)"
<RemoveExistingProducts After="InstallValidate"><![CDATA[NEWERVERSIONDETECTED OR PREVIOUSVERSIONSINSTALLED]]></RemoveExistingProducts>
<Custom Action="OriginalTargetDir" After="FileCost"><![CDATA[(NOT INSTALLDIR) AND (NOT EXISTINGINSTALLDIR)]]></Custom>
<Custom Action="DefaultTargetDir" Before="FileCost" ><![CDATA[NOT Installed AND (NOT INSTALLDIR) AND EXISTINGINSTALLDIR]]></Custom>
<Custom Action="CreateHostOnlyInterfaceArgs" Before="CreateHostOnlyInterface" ><![CDATA[&VBoxNetworkAdp=3]]></Custom>
<Custom Action="CreateHostOnlyInterface" Before="InstallFinalize" ><![CDATA[&VBoxNetworkAdp=3]]></Custom>
<Custom Action="RollbackInstallNetFltArgs" Before="RollbackInstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
<Custom Action="RollbackInstallNetFlt" Before="InstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
<Custom Action="InstallNetFlt" Before="CreateHostOnlyInterface" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
<Custom Action="RollbackUninstallNetFltArgs" Before="RollbackUninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
<Custom Action="RollbackUninstallNetFlt" Before="UninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>