Skip to content
/ wix Public

Commit a057641

Browse files
committed
ForceAbsent means a package can be removed even if it has other dependants
1 parent 1be4e09 commit a057641

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/burn/engine/dependency.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,7 @@ extern "C" HRESULT DependencyPlanPackageBegin(
453453
else
454454
{
455455
hr = S_OK;
456+
BOOL fDependenciesWarned = FALSE;
456457

457458
for (DWORD i = 0; i < pPackage->cDependencyProviders; ++i)
458459
{
@@ -467,7 +468,15 @@ extern "C" HRESULT DependencyPlanPackageBegin(
467468
{
468469
hr = S_OK;
469470

470-
if (!fDependentBlocksUninstall)
471+
if (pPackage->requested == BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT)
472+
{
473+
if (!fDependenciesWarned)
474+
{
475+
fDependenciesWarned = TRUE;
476+
LogId(REPORT_STANDARD, MSG_DEPENDENCY_PACKAGE_DEPENDENTS_OVERRIDDEN, pPackage->sczId);
477+
}
478+
}
479+
else if (!fDependentBlocksUninstall)
471480
{
472481
fDependentBlocksUninstall = TRUE;
473482

src/burn/engine/engine.mc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1282,3 +1282,10 @@ Language=English
12821282
Skipping MSI property '%1!ls!' because condition '%2!ls!' evaluates to %3!hs!.
12831283
.
12841284
1285+
1286+
MessageId=701
1287+
Severity=Warning
1288+
SymbolicName=MSG_DEPENDENCY_PACKAGE_DEPENDENTS_OVERRIDDEN
1289+
Language=English
1290+
BA requested to uninstall package: %1!ls!, despite dependents:
1291+
.

0 commit comments

Comments
 (0)