From 8ebde131206f1502cbff2055941ffe52e2802439 Mon Sep 17 00:00:00 2001 From: Charles Baker Date: Thu, 24 Oct 2024 13:13:26 +1300 Subject: Add bal:DisplayFilesInUseDialogCondition to disable Files In Use dialog Disabling display skips showing the "Files In Use" dialog and returning a result as if the user had chosen to ignore the dialog and reboot in the case of files that were unable to be replaced. --- src/api/burn/WixToolset.BootstrapperApplicationApi/IPackageInfo.cs | 5 +++++ src/api/burn/WixToolset.BootstrapperApplicationApi/PackageInfo.cs | 4 ++++ src/api/burn/balutil/balinfo.cpp | 4 ++++ src/api/burn/balutil/inc/balinfo.h | 1 + 4 files changed, 14 insertions(+) (limited to 'src/api/burn') diff --git a/src/api/burn/WixToolset.BootstrapperApplicationApi/IPackageInfo.cs b/src/api/burn/WixToolset.BootstrapperApplicationApi/IPackageInfo.cs index e2512584..9b5e74cb 100644 --- a/src/api/burn/WixToolset.BootstrapperApplicationApi/IPackageInfo.cs +++ b/src/api/burn/WixToolset.BootstrapperApplicationApi/IPackageInfo.cs @@ -27,6 +27,11 @@ namespace WixToolset.BootstrapperApplicationApi /// string DisplayInternalUICondition { get; } + /// + /// The authored bal:DisplayFilesInUseDialogCondition. + /// + string DisplayFilesInUseDialogCondition { get; } + /// /// The package's display name. /// diff --git a/src/api/burn/WixToolset.BootstrapperApplicationApi/PackageInfo.cs b/src/api/burn/WixToolset.BootstrapperApplicationApi/PackageInfo.cs index e835f9ea..81a8869f 100644 --- a/src/api/burn/WixToolset.BootstrapperApplicationApi/PackageInfo.cs +++ b/src/api/burn/WixToolset.BootstrapperApplicationApi/PackageInfo.cs @@ -120,6 +120,9 @@ namespace WixToolset.BootstrapperApplicationApi /// public string DisplayInternalUICondition { get; internal set; } + /// + public string DisplayFilesInUseDialogCondition { get; internal set; } + /// public string ProductCode { get; internal set; } @@ -363,6 +366,7 @@ namespace WixToolset.BootstrapperApplicationApi var package = (PackageInfo)ipackage; package.DisplayInternalUICondition = BootstrapperApplicationData.GetAttribute(node, "DisplayInternalUICondition"); + package.DisplayFilesInUseDialogCondition = BootstrapperApplicationData.GetAttribute(node, "DisplayFilesInUseDialogCondition"); } nodes = root.Select("/p:BootstrapperApplicationData/p:WixPrereqInformation", namespaceManager); diff --git a/src/api/burn/balutil/balinfo.cpp b/src/api/burn/balutil/balinfo.cpp index 38c4bd18..ff0dfd9f 100644 --- a/src/api/burn/balutil/balinfo.cpp +++ b/src/api/burn/balutil/balinfo.cpp @@ -291,6 +291,7 @@ DAPI_(void) BalInfoUninitialize( ReleaseStr(pBundle->packages.rgPackages[i].sczDescription); ReleaseStr(pBundle->packages.rgPackages[i].sczId); ReleaseStr(pBundle->packages.rgPackages[i].sczDisplayInternalUICondition); + ReleaseStr(pBundle->packages.rgPackages[i].sczDisplayFilesInUseDialogCondition); ReleaseStr(pBundle->packages.rgPackages[i].sczProductCode); ReleaseStr(pBundle->packages.rgPackages[i].sczUpgradeCode); ReleaseStr(pBundle->packages.rgPackages[i].sczVersion); @@ -517,6 +518,9 @@ static HRESULT ParseBalPackageInfoFromXml( hr = XmlGetAttributeEx(pNode, L"DisplayInternalUICondition", &pPackage->sczDisplayInternalUICondition); ExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to get DisplayInternalUICondition setting for package."); + hr = XmlGetAttributeEx(pNode, L"DisplayFilesInUseDialogCondition", &pPackage->sczDisplayFilesInUseDialogCondition); + ExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to get DisplayFilesInUseDialogCondition setting for package."); + hr = XmlGetAttributeEx(pNode, L"PrimaryPackageType", &scz); ExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to get PrimaryPackageType setting for package."); diff --git a/src/api/burn/balutil/inc/balinfo.h b/src/api/burn/balutil/inc/balinfo.h index 234284f6..8baee844 100644 --- a/src/api/burn/balutil/inc/balinfo.h +++ b/src/api/burn/balutil/inc/balinfo.h @@ -54,6 +54,7 @@ typedef struct _BAL_INFO_PACKAGE BOOL fPermanent; BOOL fVital; LPWSTR sczDisplayInternalUICondition; + LPWSTR sczDisplayFilesInUseDialogCondition; LPWSTR sczProductCode; LPWSTR sczUpgradeCode; LPWSTR sczVersion; -- cgit v1.2.3-55-g6feb