VirtualBox.wxs revision f89a9a89bbb6486fda960f0b97be6dc931ca5ba1
c5a50b49a2e48128340b661a67c80ae207288038vboxsync VirtualBox Windows Installation Script (WiX)
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync Copyright (C) 2014 Oracle Corporation
1a4f596ce75683d6e0b330ac39510b2e177f3b43vboxsync This file is part of VirtualBox Open Source Edition (OSE), as
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync available from http://www.virtualbox.org. This file is free software;
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync you can redistribute it and/or modify it under the terms of the GNU
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync General Public License (GPL) as published by the Free Software
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync Foundation, in version 2 as it comes in the "COPYING" file of the
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync VirtualBox OSE distribution. VirtualBox OSE is distributed in the
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <!-- The merge module file names -->
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <?define Property_VBoxMergeApp = "$(env.VBOX_WIN_INST_MERGE_APP)" ?>
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <?define Property_VBoxMergeUSB = "$(env.VBOX_WIN_INST_MERGE_USB)" ?>
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <?define Property_VBoxMergeNetworkFlt = "$(env.VBOX_WIN_INST_MERGE_NETFLT)" ?>
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <?define Property_VBoxMergeNetworkAdp = "$(env.VBOX_WIN_INST_MERGE_NETADP)" ?>
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <?define Property_VBoxMergePython = "$(env.VBOX_WIN_INST_MERGE_PYTHON)" ?>
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync UpgradeCode="C4BAD770-BFE8-4D2C-A592-693028A7215B"
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync Name="$(env.VBOX_PRODUCT) $(env.VBOX_VERSION_STRING)"
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync Language="!(loc.LANG)"
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync Codepage="1252"
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync Manufacturer="$(env.VBOX_VENDOR)">
67927207a2d6bb545eb655ef14cdb090b1957120vboxsync Keywords="Installer"
67927207a2d6bb545eb655ef14cdb090b1957120vboxsync Description="$(env.VBOX_PRODUCT) $(var.Property_VersionExt) installation package"
67927207a2d6bb545eb655ef14cdb090b1957120vboxsync Comments="$(env.VBOX_PRODUCT) installation package"
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync Compressed="yes"
67927207a2d6bb545eb655ef14cdb090b1957120vboxsync Manufacturer="$(env.VBOX_VENDOR)"
1a4f596ce75683d6e0b330ac39510b2e177f3b43vboxsync InstallerVersion="200"
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync InstallPrivileges="elevated"
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <!-- Global properties -->
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <Property Id="ARPPRODUCTICON">IconVirtualBox</Property>
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <Property Id="ARPURLINFOABOUT">http://www.virtualbox.org</Property>
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <Property Id="ARPURLUPDATEINFO">http://www.virtualbox.org</Property>
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <!-- Install the product for all users on the system -->
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <!-- Force overwriting all files and re-create shortcuts to guarantee a working environment -->
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <!-- VirtualBox properties -->
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <Property Id="VBOX_INSTALLDESKTOPSHORTCUT" Value="1"></Property>
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <Property Id="VBOX_INSTALLQUICKLAUNCHSHORTCUT" Value="1"></Property>
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <Property Id="VBOX_REGISTERFILEEXTENSIONS" Value="1"></Property>
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <Property Id="VBOX_STARTVBOX" Value="1"></Property>
ffa06e5b007c5b2f57341d90088189ce5f99c091vboxsync <!-- Make sure installation will not start on anything other but the NT family -->
<RegistrySearch Id="RegSearchInnotekVersion" Root="HKLM" Key="SOFTWARE\Innotek\VirtualBox" Name="Version" Type="raw" Win64="$(var.Property_Win64)"/>
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" />
Value="[ProgramFiles64Folder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" />
<RegistrySearch Id="RegistryGetInstallPath" Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir"
<CustomAction Id="ca_DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" />
Value="[ProgramFilesFolder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" />
<RegistrySearch Id="RegistryGetInstallPath" Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir"
<CustomAction Id="ca_DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" />
<RegistrySearch Id="RegSearchSunVersion" Root="HKLM" Key="SOFTWARE\Sun\VirtualBox" Name="Version" Type="raw" Win64="$(var.Property_Win64)"/>
<CustomAction Id="ca_StartVBox" Directory="INSTALLDIR" ExeCommand="[INSTALLDIR]\VirtualBox.exe" Return="asyncNoWait" Impersonate="yes" />
<CustomAction Id="ca_CheckSerial" BinaryKey="VBoxInstallHelper" DllEntry="CheckSerial" Impersonate="no"/>
<CustomAction Id="ca_InstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="InstallBranding" Execute="deferred" Return="check" Impersonate="no"/>
<CustomAction Id="ca_InstallBrandingArgs" Property="ca_InstallBranding" Value="[INSTALLDIR]" Execute="immediate"/>
<CustomAction Id="ca_UninstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="UninstallBranding" Execute="deferred" Return="check" Impersonate="no"/>
<CustomAction Id="ca_UninstallBrandingArgs" Property="ca_UninstallBranding" Value="[INSTALLDIR]" Execute="immediate"/>
<Merge Id="msm_VBoxApp" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeApp)" DiskId="1" />
<Merge Id="msm_VBoxUSB" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeUSB)" DiskId="1" />
<Merge Id="msm_VBoxNetworkFlt" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeNetworkFlt)" DiskId="1" />
<Merge Id="msm_VBoxNetworkAdp" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeNetworkAdp)" DiskId="1" />
<Merge Id="msm_VBoxPython" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergePython)" DiskId="1" />
<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)"
<Component Id="cp_DesktopShortcut" Guid="668F8A1A-F5CE-48B3-BB1A-3042EE27B279" Win64="$(var.Property_Win64)">
<Shortcut Id="sc_DesktopVBox" Directory="DesktopFolder" Name="$(env.VBOX_PRODUCT)" Description="$(env.VBOX_PRODUCT)"
<Component Id="cp_QuickLaunchVBox" Guid="CC19E026-938A-41CB-8E77-3F33296244B6" Win64="$(var.Property_Win64)">
<Shortcut Id="sc_QuickLaunchVBox" Directory="dir_QuicklaunchFolder" Name="$(env.VBOX_PRODUCT)" Description="$(env.VBOX_PRODUCT)"
Description="!(loc.VB_App)"
Description="!(loc.VB_USBDriver)"
Description="!(loc.VB_Network)"
Description="!(loc.VB_NetFltDriver)"
Description="!(loc.VB_NetAdpDriver)"
Description="!(loc.VB_Python)"
To debug the action sequences, do: "msiexec /i <VBox.msi> /lar <Logfile>"
<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_InstallBrandingArgs" Before="ca_InstallBranding" ><![CDATA[NOT REMOVE]]></Custom>
<Custom Action="ca_UninstallBrandingArgs" Before="ca_UninstallBranding" ><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]></Custom>