<?xml version="1.0"?> <!-- VirtualBox Windows Installation Script (WiX) --> <!-- Copyright (C) 2006-2023 Oracle and/or its affiliates. This file is part of VirtualBox base platform packages, as available from https://www.virtualbox.org. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, in version 3 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see <https://www.gnu.org/licenses>. SPDX-License-Identifier: GPL-3.0-only --> <Include xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension"> <?if $(env.VBOX_WITH_NETFLT) = "yes" ?> <!-- Create host-only interfaces on first-time install --> <Custom Action="ca_CreateHostOnlyInterfaceNDIS6Args" Before="ca_CreateHostOnlyInterfaceNDIS6" > <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?> <![CDATA[(NOT Installed) AND (VersionNT >= 600) AND ($cp_NetAdp6Driver=3)]]> <?else ?> <![CDATA[(NOT Installed) AND (VersionNT >= 600) AND ($cp_NetAdp6Driver=3)]]> <?endif ?> </Custom> <Custom Action="ca_CreateHostOnlyInterfaceNDIS6" Before="InstallFinalize" > <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?> <![CDATA[(NOT Installed) AND (VersionNT >= 600) AND ($cp_NetAdp6Driver=3)]]> <?else ?> <![CDATA[(NOT Installed) AND (VersionNT >= 600) AND ($cp_NetAdp6Driver=3)]]> <?endif ?> </Custom> <!-- Remove the host-only interfaces on uninstall only. Includes VBoxNetAdp6 driver uninstall. @todo r=klaus Clean up this inconsistency by changing what the install helper DLL does. It's very surprising behavior and needs digging through a lot of code to understand the where and why. --> <Custom Action="ca_RemoveHostOnlyInterfacesNDIS6" After="InstallInitialize" > <![CDATA[NOT (UPGRADINGPRODUCTCODE) AND (Installed) AND (REMOVE="ALL")]]> </Custom> <!-- Stop the host-only interfaces on update only. Driver still has to be uninstalled, and the creation of interfaces in the new installer will do the actual upgrading, preserving the interfaces. --> <Custom Action="ca_StopHostOnlyInterfacesNDIS6" After="InstallInitialize" > <![CDATA[(UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]> </Custom> <!-- Uninstall the driver only on package upgrade, as for uninstall it is included in ca_RemoveHostOnlyInterfaces. @todo r=klaus Clean up this inconsistency by changing what the install helper DLL does. It's very surprising behavior and needs digging through a lot of code to understand the where and why. --> <Custom Action="ca_UninstallNetAdp6Args" Before="ca_UninstallNetAdp6" > <![CDATA[(UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]> </Custom> <Custom Action="ca_UninstallNetAdp6" After="ca_StopHostOnlyInterfacesNDIS6" > <![CDATA[(UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]> </Custom> <?endif ?> </Include>