VirtualBox.wxs revision 1ab3b6ebbcab4918a5a611bb2f020fc650c70544
0N/A<?xml version='1.0' encoding='windows-1252'?>
2223N/A<!--
0N/A VirtualBox Windows Installation Script (WiX)
0N/A
0N/A Copyright (C) 2014 Oracle Corporation
0N/A
0N/A This file is part of VirtualBox Open Source Edition (OSE), as
0N/A available from http://www.virtualbox.org. This file is free software;
0N/A you can redistribute it and/or modify it under the terms of the GNU
0N/A General Public License (GPL) as published by the Free Software
0N/A Foundation, in version 2 as it comes in the "COPYING" file of the
0N/A VirtualBox OSE distribution. VirtualBox OSE is distributed in the
0N/A hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
0N/A-->
0N/A
0N/A<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
0N/A xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
0N/A
1472N/A <?include Properties.wxi ?>
1472N/A
1472N/A<?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
0N/A <!-- The merge module file names -->
0N/A <?define Property_VBoxMergeApp = "$(env.VBOX_WIN_INST_MERGE_APP)" ?>
0N/A <?define Property_VBoxMergeUSB = "$(env.VBOX_WIN_INST_MERGE_USB)" ?>
1879N/A
1879N/A <?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
1879N/A <?define Property_VBoxMergeNetworkFlt = "$(env.VBOX_WIN_INST_MERGE_NETFLT)" ?>
1879N/A <?endif ?>
1879N/A
1879N/A <?define Property_VBoxMergeNetworkAdp = "$(env.VBOX_WIN_INST_MERGE_NETADP)" ?>
1879N/A
1879N/A <?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
4127N/A <?define Property_VBoxMergePython = "$(env.VBOX_WIN_INST_MERGE_PYTHON)" ?>
1879N/A <?endif ?>
1879N/A<?endif ?>
1879N/A
1879N/A <Product Id="*"
1879N/A UpgradeCode="C4BAD770-BFE8-4D2C-A592-693028A7215B"
1879N/A Name="$(env.VBOX_PRODUCT) $(env.VBOX_VERSION_STRING)"
1879N/A Language="!(loc.LANG)"
1879N/A Codepage="1252"
1879N/A Version="$(var.Property_Version)"
1879N/A Manufacturer="$(env.VBOX_VENDOR)">
0N/A
0N/A <Package Id="*"
0N/A Keywords="Installer"
0N/A Description="$(env.VBOX_PRODUCT) $(var.Property_VersionExt) installation package"
0N/A Comments="$(env.VBOX_PRODUCT) installation package"
0N/A Compressed="yes"
0N/A Manufacturer="$(env.VBOX_VENDOR)"
0N/A InstallerVersion="200"
1915N/A InstallPrivileges="elevated"
1915N/A Platform="$(var.Property_Platform)"/>
0N/A
1915N/A <!-- Global properties -->
38N/A <Property Id="ARPPRODUCTICON">IconVirtualBox</Property>
0N/A <Property Id="ARPURLINFOABOUT">http://www.virtualbox.org</Property>
0N/A <Property Id="ARPURLUPDATEINFO">http://www.virtualbox.org</Property>
0N/A
0N/A <!-- Install the product for all users on the system -->
0N/A <Property Id="ALLUSERS"><![CDATA[1]]></Property>
0N/A
1172N/A <!-- Force overwriting all files and re-create shortcuts to guarantee a working environment -->
0N/A <Property Id='REINSTALLMODE' Value='amus'/>
0N/A
0N/A <!-- VirtualBox properties -->
0N/A <Property Id="VBOX_INSTALLDESKTOPSHORTCUT" Value="1"></Property>
0N/A <Property Id="VBOX_INSTALLQUICKLAUNCHSHORTCUT" Value="1"></Property>
0N/A <Property Id="VBOX_REGISTERFILEEXTENSIONS" Value="1"></Property>
0N/A <Property Id="VBOX_STARTVBOX" Value="1"></Property>
0N/A
0N/A <!-- Make sure installation will not start on anything other but the NT family -->
0N/A<?if $(env.BUILD_TARGET_ARCH) = "amd64" ?>
0N/A <Condition Message="!(loc.Only64Bit)">
0N/A VersionNT64
0N/A </Condition>
0N/A<?else ?>
0N/A <Condition Message="!(loc.Only32Bit)">
4123N/A NOT VersionNT64
4123N/A </Condition>
0N/A
0N/A <Condition Message="!(loc.WrongOS)">
0N/A NOT VersionNT=500 AND NOT Version9X AND NOT VersionNT64
0N/A </Condition>
0N/A
2772N/A<?endif ?>
2772N/A
0N/A <Condition Message="!(loc.NeedAdmin)">
0N/A Privileged
0N/A </Condition>
0N/A
0N/A <!-- Detect old innotek installation -->
0N/A <!-- Force a manual uninstall of an already installed innotek VirtualBox version first -->
0N/A <Property Id="VBOXINNOTEK">
0N/A <RegistrySearch Id="RegSearchInnotekVersion" Root="HKLM" Key="SOFTWARE\Innotek\VirtualBox" Name="Version" Type="raw" Win64="$(var.Property_Win64)"/>
0N/A </Property>
0N/A <Condition Message="!(loc.InnotekFound)">
0N/A NOT VBOXINNOTEK
0N/A </Condition>
0N/A
0N/A <!-- *************************** Upgrade packages only ******************************* -->
0N/A <!-- Minimum and Maximum specify the range of versions we are supposed to update with this upgrade.
0N/A IncludeMaximum and IncludeMinimum specify whether the bound value is actually included in the range or not
4123N/A (IncludeMaximum = yes meaning to find versions below or equal to the version specified in Maximum while
4123N/A IncludeMaximum = no only finds those below the Maximum).
0N/A OnlyDetect tells the installer not to remove the previous product. This is useful as long as we
0N/A only change files in the package -->
0N/A
0N/A <Upgrade Id="C4BAD770-BFE8-4D2C-A592-693028A7215B"> <!-- Upgrade of Sun xVM VirtualBox >= v1.6.0 -->
0N/A
0N/A <!-- Upgrade is flagged if current-install is newer than or equal to package - TODO: should make a dialog appear asking user to confirm downgrade -->
0N/A <!-- Setting "OnlyDetect" to "no" makes the installer uninstall an already newer installed version -->
0N/A <UpgradeVersion Property="NEWERVERSIONDETECTED" Minimum="$(var.Property_Version)" OnlyDetect="no" />
0N/A
0N/A <!-- Flag is set if the install will trigger an upgrade of an existing install -->
0N/A <UpgradeVersion Property="PREVIOUSVERSIONSINSTALLED" Minimum="1.0.0.0" Maximum="$(var.Property_Version)" IncludeMaximum="yes" />
0N/A
0N/A </Upgrade>
0N/A
0N/A <!-- The product's icon table -->
0N/A <Icon Id="IconVirtualBox" SourceFile="$(env.VBOX_WINDOWS_ICON_FILE)" />
0N/A
0N/A <!-- The media/binary IDs -->
0N/A <Media Id="1" Cabinet="product.cab" EmbedCab="yes" />
0N/A<?if $(env.VBOX_WITH_MSM_INSTALL) = "no" ?>
0N/A <?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
0N/A <Media Id="2" Cabinet="common.cab" EmbedCab="no" CompressionLevel="high" />
0N/A <?endif ?>
0N/A<?endif ?>
0N/A <Binary Id="VBoxInstallHelper" SourceFile="$(env.PATH_OUT)\bin\VBoxInstallHelper.dll" />
0N/A
0N/A <!-- Custom actions -->
0N/A
0N/A <!-- Figure out where a previous installation was, if any -->
0N/A<?if $(env.BUILD_TARGET_ARCH) = "amd64" ?>
0N/A <CustomAction Id="ca_OriginalTargetDir" Execute="firstSequence" Property="INSTALLDIR"
0N/A Value="[ProgramFiles64Folder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" />
0N/A
0N/A <Property Id="EXISTINGINSTALLDIR" Secure="yes">
0N/A <RegistrySearch Id="RegistryGetInstallPath" Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir"
0N/A Type="raw" Win64="$(var.Property_Win64)"/>
0N/A </Property>
0N/A <CustomAction Id="ca_DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" />
0N/A<?else ?>
0N/A <CustomAction Id="ca_OriginalTargetDir" Execute="firstSequence" Property="INSTALLDIR"
0N/A Value="[ProgramFilesFolder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" />
0N/A
0N/A <Property Id="EXISTINGINSTALLDIR" Secure="yes">
0N/A <RegistrySearch Id="RegistryGetInstallPath" Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir"
0N/A Type="raw" Win64="$(var.Property_Win64)"/>
0N/A </Property>
1915N/A <CustomAction Id="ca_DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" />
1915N/A<?endif ?>
1915N/A <CustomAction Id="ca_UninstallTAPInstances" BinaryKey="VBoxInstallHelper"
1915N/A DllEntry="UninstallTAPInstances" Execute="deferred" Return="check" Impersonate="no"/>
1915N/A
1915N/A <!-- Detect old Sun installation -->
2957N/A <!-- Force a manual uninstall of an already installed Sun VirtualBox version first -->
1915N/A <!--<Property Id="VBOXSUN">
1915N/A <RegistrySearch Id="RegSearchSunVersion" Root="HKLM" Key="SOFTWARE\Sun\VirtualBox" Name="Version" Type="raw" Win64="$(var.Property_Win64)"/>
1915N/A </Property>
2957N/A <Condition Message="!(loc.SunFound)">
2957N/A NOT VBOXSUN
1915N/A </Condition>-->
1915N/A
1915N/A <CustomAction Id="ca_StartVBox" Directory="INSTALLDIR" ExeCommand="[INSTALLDIR]\VirtualBox.exe" Return="asyncNoWait" Impersonate="yes" />
2957N/A <CustomAction Id="ca_CheckSerial" BinaryKey="VBoxInstallHelper" DllEntry="CheckSerial" Impersonate="no"/>
1915N/A
1915N/A <CustomAction Id="ca_InstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="InstallBranding" Execute="deferred" Return="check" Impersonate="no"/>
1915N/A <CustomAction Id="ca_InstallBrandingArgs" Property="ca_InstallBranding" Value="[INSTALLDIR]" Execute="immediate"/>
1915N/A
1915N/A <CustomAction Id="ca_UninstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="UninstallBranding" Execute="deferred" Return="check" Impersonate="no"/>
1915N/A <CustomAction Id="ca_UninstallBrandingArgs" Property="ca_UninstallBranding" Value="[INSTALLDIR]" Execute="immediate"/>
1915N/A<?if $(env.VBOX_WITH_MSM_INSTALL) = "no" ?>
1915N/A <?include VBoxMergeAppCA.wxi ?>
1915N/A <?include VBoxMergeNetFltCA.wxi ?>
1915N/A <?include VBoxMergePythonCA.wxi ?>
1915N/A<?endif ?>
1915N/A
1915N/A <Directory Id="TARGETDIR" Name="SourceDir">
1915N/A <Directory Id="$(var.Property_ProgramFiles)" Name="PFiles">
1915N/A <Directory Id="INSTALLDIR" Name="$(env.VBOX_PRODUCT)">
2957N/A<?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
2957N/A <Merge Id="msm_VBoxApp" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeApp)" DiskId="1" />
2957N/A<?else ?>
1915N/A <?include VBoxMergeApp.wxi ?>
1915N/A<?endif ?>
1915N/A <Directory Id="dir_Drivers" Name="drivers">
1915N/A <Directory Id="dir_USB" Name="USB">
1915N/A<?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
1915N/A <Merge Id="msm_VBoxUSB" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeUSB)" DiskId="1" />
1915N/A<?else ?>
1915N/A <?include VBoxMergeUSB.wxi ?>
1915N/A<?endif ?>
2957N/A </Directory>
2957N/A <Directory Id="dir_Network" Name="network">
2957N/A<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
2957N/A <Directory Id="dir_NetFlt" Name="netflt">
2957N/A <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
2957N/A <Merge Id="msm_VBoxNetworkFlt" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeNetworkFlt)" DiskId="1" />
2957N/A <?else ?>
2957N/A <?include VBoxMergeNetFlt.wxi ?>
1915N/A <?endif ?>
1915N/A </Directory>
1915N/A<?endif ?>
1915N/A <Directory Id="dir_NetAdp" Name="netadp">
2957N/A<?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
2957N/A <Merge Id="msm_VBoxNetworkAdp" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeNetworkAdp)" DiskId="1" />
1915N/A<?else ?>
1915N/A <?include VBoxMergeNetAdp.wxi ?>
2957N/A<?endif ?>
1915N/A </Directory>
2957N/A </Directory>
2957N/A </Directory>
2957N/A<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
1915N/A <Directory Id="dir_SDK" Name="sdk">
1915N/A <Directory Id="dir_SDKInstall" Name="install">
1915N/A <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
1915N/A <Merge Id="msm_VBoxPython" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergePython)" DiskId="1" />
2957N/A <?else ?>
1915N/A <?include VBoxMergePython.wxi ?>
1915N/A <?endif ?>
1915N/A </Directory>
1915N/A </Directory>
1915N/A<?endif ?>
2957N/A <!-- Set up special directory IDs for referencing to the start menu
2957N/A or the Quick Launch bar.
2957N/A See: http://msdn.microsoft.com/en-us/library/aa368276.aspx
1915N/A http://wix.mindcapers.com/wiki/Shortcuts_in_WiX -->
2957N/A <Directory Id="ProgramMenuFolder">
1915N/A <Directory Id="dir_StartMenuVBox" Name="$(env.VBOX_PRODUCT)"/>
2957N/A </Directory>
1915N/A
2957N/A <Directory Id="DesktopFolder" Name="Desktop"/>
1915N/A
1915N/A <Directory Id="AppDataFolder" Name="AppData">
2957N/A <Directory Id="dir_AppDataMicrosoft" Name="Microsoft">
2957N/A <Directory Id="dir_AppDataMSIE" Name="Internet Explorer">
2957N/A <Directory Id="dir_QuicklaunchFolder" Name="Quick Launch"/>
1915N/A </Directory>
1915N/A </Directory>
0N/A </Directory>
0N/A
0N/A <!-- Shortcut(s) in start menu -->
0N/A <Component Id="cp_StartMenuVBox" Guid="C2DC321A-CE63-40EE-8A98-724DF8BD12FB" Win64="$(var.Property_Win64)">
0N/A <Shortcut Id="sc_StartMenuVBox" Directory="dir_StartMenuVBox" Name="$(env.VBOX_PRODUCT)" Description="$(env.VBOX_PRODUCT)"
38N/A Target="[INSTALLDIR]VirtualBox.exe" WorkingDirectory="INSTALLDIR"/>
0N/A <RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)"
0N/A Type="string" Value="installed" KeyPath="yes" />
0N/A <?include $(env.PATH_TARGET)\Shortcuts_StartMenu.wxi ?>
0N/A </Component>
0N/A
0N/A <Component Id="cp_DesktopShortcut" Guid="668F8A1A-F5CE-48B3-BB1A-3042EE27B279" Win64="$(var.Property_Win64)">
0N/A <Condition>VBOX_INSTALLDESKTOPSHORTCUT</Condition>
0N/A <Shortcut Id="sc_DesktopVBox" Directory="DesktopFolder" Name="$(env.VBOX_PRODUCT)" Description="$(env.VBOX_PRODUCT)"
0N/A Target="[INSTALLDIR]VirtualBox.exe" WorkingDirectory="INSTALLDIR"/>
0N/A <RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)" Type="string"
0N/A Value="installed" KeyPath="yes" />
0N/A </Component>
0N/A
0N/A <Component Id="cp_QuickLaunchVBox" Guid="CC19E026-938A-41CB-8E77-3F33296244B6" Win64="$(var.Property_Win64)">
0N/A <CreateFolder/>
0N/A <Condition>VBOX_INSTALLQUICKLAUNCHSHORTCUT</Condition>
0N/A <Shortcut Id="sc_QuickLaunchVBox" Directory="dir_QuicklaunchFolder" Name="$(env.VBOX_PRODUCT)" Description="$(env.VBOX_PRODUCT)"
0N/A Target="[INSTALLDIR]VirtualBox.exe" WorkingDirectory="INSTALLDIR"/>
0N/A <RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)"
0N/A Type="string" Value="installed" KeyPath="yes" />
0N/A </Component>
0N/A
1080N/A </Directory>
4012N/A </Directory>
0N/A </Directory> <!-- TARGETDIR -->
0N/A
0N/A <!-- Note: Feature IDs *must not* be renamed to use any prefixes or such,
0N/A otherwise this will break manual selection using the ADDLOCAL= syntax
0N/A when using the command line / scripts (see VBox manual). -->
418N/A <Feature Id="VBoxApplication" Title="VirtualBox Application" Level="1"
0N/A Description="!(loc.VB_App)"
0N/A ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
0N/A Absent="disallow" AllowAdvertise="no" >
0N/A <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
0N/A <MergeRef Id="msm_VBoxApp" />
0N/A<?else ?>
367N/A <ComponentRef Id="cp_StartMenuVBox" />
0N/A <ComponentRef Id="cp_DesktopShortcut" />
0N/A <ComponentRef Id="cp_QuickLaunchVBox" />
1265N/A <ComponentRef Id="cp_RegisterExtensions" />
1265N/A
1265N/A <?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
0N/A <ComponentRef Id="cp_Docs" />
0N/A <?endif ?>
0N/A <ComponentRef Id="cp_NLS" />
0N/A <?if $(env.VBOX_WITH_32_ON_64_MAIN_API) = "yes" ?>
0N/A <ComponentRef Id="cp_MainCOM_x86" />
0N/A <?endif ?>
0N/A <ComponentRef Id="cp_MainCOM" />
1172N/A <ComponentRef Id="cp_MainBinaries" />
0N/A <?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
0N/A <ComponentRef Id="cp_QtAccessible" />
0N/A <?endif ?>
0N/A <?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
0N/A <ComponentRef Id="cp_VBoxPyInst" />
0N/A <ComponentRef Id="cp_VBoxPyMod" />
0N/A <?endif ?>
4123N/A
4123N/A <?if $(env.VBOX_WITH_CROGL) = "yes" ?>
4123N/A <ComponentRef Id="cp_VBoxCROpenGL" />
0N/A <?endif ?>
0N/A <ComponentRef Id="cp_VBoxSDLBinaries" />
0N/A <?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?>
0N/A <ComponentRef Id="cp_VBoxWebService" />
0N/A <?endif ?>
0N/A <ComponentRef Id="cp_VBoxDrv" />
0N/A <?endif ?>
0N/A
0N/A <Feature Id="VBoxUSB" Title="VirtualBox USB Support" Level="1"
0N/A Description="!(loc.VB_USBDriver)"
0N/A ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
1915N/A Absent="allow" AllowAdvertise="no" >
1915N/A<?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
1915N/A <MergeRef Id="msm_VBoxUSB" />
1915N/A<?else ?>
1915N/A <ComponentRef Id="cp_USBFilterDriver" />
0N/A <ComponentRef Id="cp_USBDeviceDriver" />
0N/A<?endif ?>
0N/A </Feature>
0N/A
0N/A<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
0N/A <Feature Id="VBoxNetwork" Title="VirtualBox Networking" Level="1"
0N/A Description="!(loc.VB_Network)"
0N/A ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
0N/A Absent="allow" AllowAdvertise="no" >
0N/A <Feature Id="VBoxNetworkFlt" Title="VirtualBox Bridged Networking" Level="1"
0N/A Description="!(loc.VB_NetFltDriver)"
0N/A ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
0N/A Absent="allow" AllowAdvertise="no" >
0N/A <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
0N/A <MergeRef Id="msm_VBoxNetworkFlt" />
0N/A <?else ?>
0N/A <ComponentRef Id="cp_NetFltDriver" />
0N/A <?endif ?>
0N/A </Feature>
0N/A <Feature Id="VBoxNetworkAdp" Title="VirtualBox Host-Only Networking" Level="1"
0N/A Description="!(loc.VB_NetAdpDriver)"
0N/A ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
0N/A Absent="allow" AllowAdvertise="no" >
0N/A <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
0N/A <MergeRef Id="msm_VBoxNetworkAdp" />
0N/A <?else ?>
0N/A <ComponentRef Id="cp_NetAdpDriver" />
0N/A <?endif ?>
0N/A </Feature>
0N/A </Feature>
1080N/A<?endif ?>
1080N/A
1080N/A<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
4127N/A <Feature Id="VBoxPython" Title="VirtualBox Python 2.x Support" Level="1"
4127N/A Description="!(loc.VB_Python)"
4127N/A ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
4127N/A Absent="allow" AllowAdvertise="no" >
4127N/A <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
4127N/A <MergeRef Id="msm_VBoxPython" />
4127N/A <?else ?>
4127N/A <ComponentRef Id="cp_VBoxPythonBinding" />
4127N/A <?endif ?>
4127N/A </Feature>
4127N/A<?endif ?>
4127N/A </Feature>
4127N/A
4127N/A <!-- Include user interface definition -->
4127N/A <?include UserInterface.wxi ?>
4127N/A
4127N/A <InstallExecuteSequence>
4127N/A
4127N/A <!--
4127N/A To debug the action sequences, do: "msiexec /i <VBox.msi> /lar <Logfile>"
4127N/A
4127N/A InstallUISequence (client side) is:
4127N/A AppSearch
4127N/A LaunchConditions
4127N/A ValidateProductID
4127N/A CostInitialize
4127N/A FileCost
4127N/A CostFinalize
4127N/A ExecuteAction -> will pass control over to "InstallExecuteSequence"
4127N/A
4127N/A The first six actions above will be repeated but skipped on the server
4127N/A side if already run on the client side.
4127N/A
4127N/A InstallExecuteSequence (server side) is:
4127N/A <First six action from InstallUISequence>
4127N/A .
4127N/A InstallInitialize
4127N/A .
4127N/A InstallFinalize
4127N/A
4127N/A The actions between InstallInitialize and InstallFinalize will be gone through twice:
4127N/A - The first time the installer creates an installation script containing all actions in the right
4127N/A sequence which need to get executed in a batch later. At this point the launch conditions for
4127N/A custom actions must be met already!
4127N/A - The second time the generated installation script will be run as-is.
4127N/A
4127N/A Also, the InstallUISequence and InstallExecuteSequence tables run in different sessions which
4127N/A need public properties (that is, UPPERCASE properties).
4127N/A -->
4127N/A
4127N/A <!-- AppSearch must be done before "RemoveExistingProducts" and before "FindRelatedProducts" -->
4127N/A <AppSearch Sequence="1"></AppSearch>
4127N/A <LaunchConditions Sequence="2" />
4127N/A
4127N/A <!-- First install the new version and then remove the old version. This is more efficient -->
0N/A <RemoveExistingProducts Sequence="3" />
0N/A <InstallValidate Sequence="4" />
0N/A
0N/A <Custom Action="ca_OriginalTargetDir" After="FileCost"><![CDATA[(NOT INSTALLDIR) AND (NOT EXISTINGINSTALLDIR)]]></Custom>
859N/A <Custom Action="ca_DefaultTargetDir" Before="FileCost" ><![CDATA[NOT Installed AND (NOT INSTALLDIR) AND EXISTINGINSTALLDIR]]></Custom>
859N/A
0N/A <Custom Action="ca_UninstallTAPInstances" Before="InstallFiles" >1</Custom>
0N/A
0N/A <Custom Action="ca_InstallBrandingArgs" Before="ca_InstallBranding" ><![CDATA[NOT REMOVE]]></Custom>
0N/A <Custom Action="ca_InstallBranding" Before="InstallFinalize" ><![CDATA[NOT REMOVE]]></Custom>
0N/A
0N/A <!-- Uninstall branding on complete uninstall, not on update -->
0N/A <Custom Action="ca_UninstallBrandingArgs" Before="ca_UninstallBranding" ><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]></Custom>
0N/A <Custom Action="ca_UninstallBranding" Before="InstallFinalize" ><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]></Custom>
0N/A
0N/A<?if $(env.VBOX_WITH_MSM_INSTALL) = "no" ?>
0N/A <?include VBoxMergeAppSeq.wxi ?>
0N/A <?include VBoxMergeNetFltSeq.wxi ?>
0N/A <?include VBoxMergePythonSeq.wxi ?>
0N/A<?endif ?>
0N/A
0N/A </InstallExecuteSequence>
0N/A
0N/A </Product>
0N/A</Wix>
0N/A