aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-05-03 21:14:52 -0500
committerSean Hall <r.sean.hall@gmail.com>2021-05-11 19:11:19 -0500
commita2f2036c8598efcb434eebeeacd7ede84ab60dfe (patch)
tree271e07336a3eb394f5f9fe4c2da0973d2b3193dc /src
parent2f4287fdcee83b30e0f7f3ce548bcdff2ee85e1f (diff)
downloadwix-a2f2036c8598efcb434eebeeacd7ede84ab60dfe.tar.gz
wix-a2f2036c8598efcb434eebeeacd7ede84ab60dfe.tar.bz2
wix-a2f2036c8598efcb434eebeeacd7ede84ab60dfe.zip
Cache packages that will be present for CACHE/INSTALL overall actions.
During actions that are expected to have source media available, all packages that have cacheType set to keep should be cached if the package is going to be present. Set NetFx ExePackage Cache="no" and remove uninstall and repair arguments. #5125
Diffstat (limited to 'src')
-rw-r--r--src/burn/engine/core.cpp2
-rw-r--r--src/burn/engine/engine.mc2
-rw-r--r--src/burn/engine/logging.cpp17
-rw-r--r--src/burn/engine/logging.h4
-rw-r--r--src/burn/engine/plan.cpp17
-rw-r--r--src/burn/engine/userexperience.cpp6
-rw-r--r--src/burn/test/BurnUnitTest/PlanTest.cpp25
-rw-r--r--src/ext/NetFx/wixlib/NetCore3.1.12_x64.wxs6
-rw-r--r--src/ext/NetFx/wixlib/NetCore3.1.12_x86.wxs6
-rw-r--r--src/ext/NetFx/wixlib/NetFx452.wxs4
-rw-r--r--src/ext/NetFx/wixlib/NetFx46.wxs4
-rw-r--r--src/ext/NetFx/wixlib/NetFx461.wxs4
-rw-r--r--src/ext/NetFx/wixlib/NetFx462.wxs2
-rw-r--r--src/ext/NetFx/wixlib/NetFx472.wxs4
-rw-r--r--src/ext/NetFx/wixlib/NetFx48.wxs4
15 files changed, 76 insertions, 31 deletions
diff --git a/src/burn/engine/core.cpp b/src/burn/engine/core.cpp
index 02cab7e6..601f29a0 100644
--- a/src/burn/engine/core.cpp
+++ b/src/burn/engine/core.cpp
@@ -1788,7 +1788,7 @@ static void LogPackages(
1788 const DWORD iPackage = (BOOTSTRAPPER_ACTION_UNINSTALL == action) ? pPackages->cPackages - 1 - i : i; 1788 const DWORD iPackage = (BOOTSTRAPPER_ACTION_UNINSTALL == action) ? pPackages->cPackages - 1 - i : i;
1789 const BURN_PACKAGE* pPackage = &pPackages->rgPackages[iPackage]; 1789 const BURN_PACKAGE* pPackage = &pPackages->rgPackages[iPackage];
1790 1790
1791 LogId(REPORT_STANDARD, MSG_PLANNED_PACKAGE, pPackage->sczId, LoggingPackageStateToString(pPackage->currentState), LoggingRequestStateToString(pPackage->defaultRequested), LoggingRequestStateToString(pPackage->requested), LoggingActionStateToString(pPackage->execute), LoggingActionStateToString(pPackage->rollback), LoggingBoolToString(pPackage->fPlannedCache), LoggingBoolToString(pPackage->fPlannedUncache), LoggingDependencyActionToString(pPackage->dependencyExecute), LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->expectedInstallRegistrationState), LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->expectedCacheRegistrationState)); 1791 LogId(REPORT_STANDARD, MSG_PLANNED_PACKAGE, pPackage->sczId, LoggingPackageStateToString(pPackage->currentState), LoggingRequestStateToString(pPackage->defaultRequested), LoggingRequestStateToString(pPackage->requested), LoggingActionStateToString(pPackage->execute), LoggingActionStateToString(pPackage->rollback), LoggingCacheTypeToString(pPackage->authoredCacheType), LoggingCacheTypeToString(pPackage->cacheType), LoggingBoolToString(pPackage->fPlannedCache), LoggingBoolToString(pPackage->fPlannedUncache), LoggingDependencyActionToString(pPackage->dependencyExecute), LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->expectedInstallRegistrationState), LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->expectedCacheRegistrationState));
1792 1792
1793 if (BURN_PACKAGE_TYPE_MSI == pPackage->type) 1793 if (BURN_PACKAGE_TYPE_MSI == pPackage->type)
1794 { 1794 {
diff --git a/src/burn/engine/engine.mc b/src/burn/engine/engine.mc
index 84046314..929bf67a 100644
--- a/src/burn/engine/engine.mc
+++ b/src/burn/engine/engine.mc
@@ -314,7 +314,7 @@ MessageId=201
314Severity=Success 314Severity=Success
315SymbolicName=MSG_PLANNED_PACKAGE 315SymbolicName=MSG_PLANNED_PACKAGE
316Language=English 316Language=English
317Planned package: %1!ls!, state: %2!hs!, default requested: %3!hs!, ba requested: %4!hs!, execute: %5!hs!, rollback: %6!hs!, cache: %7!hs!, uncache: %8!hs!, dependency: %9!hs!, expected install registration state: %10!hs!, expected cache registration state: %11!hs! 317Planned package: %1!ls!, state: %2!hs!, default requested: %3!hs!, ba requested: %4!hs!, execute: %5!hs!, rollback: %6!hs!, default cache strategy: %7!hs!, ba requested strategy: %8!hs!, cache: %9!hs!, uncache: %10!hs!, dependency: %11!hs!, expected install registration state: %12!hs!, expected cache registration state: %13!hs!
318. 318.
319 319
320MessageId=202 320MessageId=202
diff --git a/src/burn/engine/logging.cpp b/src/burn/engine/logging.cpp
index 065ef907..7ee1ec85 100644
--- a/src/burn/engine/logging.cpp
+++ b/src/burn/engine/logging.cpp
@@ -337,6 +337,23 @@ extern "C" LPCSTR LoggingActionStateToString(
337 } 337 }
338} 338}
339 339
340extern "C" LPCSTR LoggingCacheTypeToString(
341 BOOTSTRAPPER_CACHE_TYPE cacheType
342 )
343{
344 switch (cacheType)
345 {
346 case BOOTSTRAPPER_CACHE_TYPE_FORCE:
347 return "Force";
348 case BOOTSTRAPPER_CACHE_TYPE_KEEP:
349 return "Keep";
350 case BOOTSTRAPPER_CACHE_TYPE_REMOVE:
351 return "Remove";
352 default:
353 return "Invalid";
354 }
355}
356
340extern "C" LPCSTR LoggingDependencyActionToString( 357extern "C" LPCSTR LoggingDependencyActionToString(
341 BURN_DEPENDENCY_ACTION action 358 BURN_DEPENDENCY_ACTION action
342 ) 359 )
diff --git a/src/burn/engine/logging.h b/src/burn/engine/logging.h
index 601039f9..909ce591 100644
--- a/src/burn/engine/logging.h
+++ b/src/burn/engine/logging.h
@@ -73,6 +73,10 @@ LPCSTR LoggingActionStateToString(
73 __in BOOTSTRAPPER_ACTION_STATE actionState 73 __in BOOTSTRAPPER_ACTION_STATE actionState
74 ); 74 );
75 75
76LPCSTR LoggingCacheTypeToString(
77 BOOTSTRAPPER_CACHE_TYPE cacheType
78 );
79
76LPCSTR LoggingDependencyActionToString( 80LPCSTR LoggingDependencyActionToString(
77 BURN_DEPENDENCY_ACTION action 81 BURN_DEPENDENCY_ACTION action
78 ); 82 );
diff --git a/src/burn/engine/plan.cpp b/src/burn/engine/plan.cpp
index 327078b9..f0ae2a44 100644
--- a/src/burn/engine/plan.cpp
+++ b/src/burn/engine/plan.cpp
@@ -1077,7 +1077,7 @@ extern "C" HRESULT PlanExecutePackage(
1077 ) 1077 )
1078{ 1078{
1079 HRESULT hr = S_OK; 1079 HRESULT hr = S_OK;
1080 BOOL fRequestedCache = BOOTSTRAPPER_REQUEST_STATE_CACHE == pPackage->requested || ForceCache(pPlan, pPackage); 1080 BOOL fRequestedCache = BOOTSTRAPPER_CACHE_TYPE_REMOVE < pPackage->cacheType && (BOOTSTRAPPER_REQUEST_STATE_CACHE == pPackage->requested || ForceCache(pPlan, pPackage));
1081 1081
1082 hr = CalculateExecuteActions(pPackage, pPlan->pActiveRollbackBoundary); 1082 hr = CalculateExecuteActions(pPackage, pPlan->pActiveRollbackBoundary);
1083 ExitOnFailure(hr, "Failed to calculate plan actions for package: %ls", pPackage->sczId); 1083 ExitOnFailure(hr, "Failed to calculate plan actions for package: %ls", pPackage->sczId);
@@ -2531,8 +2531,19 @@ static BOOL ForceCache(
2531 __in BURN_PACKAGE* pPackage 2531 __in BURN_PACKAGE* pPackage
2532 ) 2532 )
2533{ 2533{
2534 // All packages that have cacheType set to force should be cached if the bundle is going to be present. 2534 switch (pPackage->cacheType)
2535 return BOOTSTRAPPER_CACHE_TYPE_FORCE == pPackage->cacheType && BOOTSTRAPPER_ACTION_UNINSTALL < pPlan->action; 2535 {
2536 case BOOTSTRAPPER_CACHE_TYPE_KEEP:
2537 // During actions that are expected to have source media available,
2538 // all packages that have cacheType set to keep should be cached if the package is going to be present.
2539 return (BOOTSTRAPPER_ACTION_CACHE == pPlan->action || BOOTSTRAPPER_ACTION_INSTALL == pPlan->action) &&
2540 BOOTSTRAPPER_REQUEST_STATE_CACHE < pPackage->requested;
2541 case BOOTSTRAPPER_CACHE_TYPE_FORCE:
2542 // All packages that have cacheType set to force should be cached if the bundle is going to be present.
2543 return BOOTSTRAPPER_ACTION_UNINSTALL < pPlan->action;
2544 default:
2545 return FALSE;
2546 }
2536} 2547}
2537 2548
2538static void CacheActionLog( 2549static void CacheActionLog(
diff --git a/src/burn/engine/userexperience.cpp b/src/burn/engine/userexperience.cpp
index 2215a070..5a54f26e 100644
--- a/src/burn/engine/userexperience.cpp
+++ b/src/burn/engine/userexperience.cpp
@@ -1998,7 +1998,11 @@ EXTERN_C BAAPI UserExperienceOnPlanPackageBegin(
1998 hr = HRESULT_FROM_WIN32(ERROR_INSTALL_USEREXIT); 1998 hr = HRESULT_FROM_WIN32(ERROR_INSTALL_USEREXIT);
1999 } 1999 }
2000 *pRequestedState = results.requestedState; 2000 *pRequestedState = results.requestedState;
2001 *pRequestedCacheType = results.requestedCacheType; 2001
2002 if (BOOTSTRAPPER_CACHE_TYPE_REMOVE <= results.requestedCacheType && BOOTSTRAPPER_CACHE_TYPE_FORCE >= results.requestedCacheType)
2003 {
2004 *pRequestedCacheType = results.requestedCacheType;
2005 }
2002 2006
2003LExit: 2007LExit:
2004 return hr; 2008 return hr;
diff --git a/src/burn/test/BurnUnitTest/PlanTest.cpp b/src/burn/test/BurnUnitTest/PlanTest.cpp
index 045c510e..23192349 100644
--- a/src/burn/test/BurnUnitTest/PlanTest.cpp
+++ b/src/burn/test/BurnUnitTest/PlanTest.cpp
@@ -726,27 +726,33 @@ namespace Bootstrapper
726 BOOL fRollback = FALSE; 726 BOOL fRollback = FALSE;
727 DWORD dwIndex = 0; 727 DWORD dwIndex = 0;
728 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); 728 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1);
729 ValidateCachePackage(pPlan, fRollback, dwIndex++, L"NetFx48Web");
730 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++);
731 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 3);
729 ValidateCachePackage(pPlan, fRollback, dwIndex++, L"PatchA"); 732 ValidateCachePackage(pPlan, fRollback, dwIndex++, L"PatchA");
730 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++); 733 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++);
731 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 2); 734 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 4);
732 ValidateCachePackage(pPlan, fRollback, dwIndex++, L"PackageA"); 735 ValidateCachePackage(pPlan, fRollback, dwIndex++, L"PackageA");
733 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++); 736 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++);
734 Assert::Equal(dwIndex, pPlan->cCacheActions); 737 Assert::Equal(dwIndex, pPlan->cCacheActions);
735 738
736 fRollback = TRUE; 739 fRollback = TRUE;
737 dwIndex = 0; 740 dwIndex = 0;
738 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 2); 741 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 4);
739 Assert::Equal(dwIndex, pPlan->cRollbackCacheActions); 742 Assert::Equal(dwIndex, pPlan->cRollbackCacheActions);
740 743
741 Assert::Equal(3055111ull, pPlan->qwEstimatedSize); 744 Assert::Equal(3055111ull, pPlan->qwEstimatedSize);
742 Assert::Equal(212992ull, pPlan->qwCacheSizeTotal); 745 Assert::Equal(6130592ull, pPlan->qwCacheSizeTotal);
743 746
744 fRollback = FALSE; 747 fRollback = FALSE;
745 dwIndex = 0; 748 dwIndex = 0;
746 DWORD dwExecuteCheckpointId = 3; 749 DWORD dwExecuteCheckpointId = 2;
747 BURN_EXECUTE_ACTION* pExecuteAction = NULL; 750 BURN_EXECUTE_ACTION* pExecuteAction = NULL;
748 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); 751 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE);
749 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[5].syncpoint.hEvent); 752 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[2].syncpoint.hEvent);
753 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
754 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[8].syncpoint.hEvent);
755 dwExecuteCheckpointId += 2; // cache checkpoints
750 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 756 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
751 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 757 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
752 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_REGISTER); 758 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_REGISTER);
@@ -755,7 +761,7 @@ namespace Bootstrapper
755 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 761 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
756 ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{22D1DDBA-284D-40A7-BD14-95EA07906F21}", BURN_DEPENDENCY_ACTION_REGISTER); 762 ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{22D1DDBA-284D-40A7-BD14-95EA07906F21}", BURN_DEPENDENCY_ACTION_REGISTER);
757 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 763 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
758 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[2].syncpoint.hEvent); 764 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[5].syncpoint.hEvent);
759 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 765 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
760 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 766 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
761 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PatchA", BURN_DEPENDENCY_ACTION_REGISTER); 767 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PatchA", BURN_DEPENDENCY_ACTION_REGISTER);
@@ -769,8 +775,11 @@ namespace Bootstrapper
769 775
770 fRollback = TRUE; 776 fRollback = TRUE;
771 dwIndex = 0; 777 dwIndex = 0;
772 dwExecuteCheckpointId = 3; 778 dwExecuteCheckpointId = 2;
773 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); 779 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE);
780 ValidateExecuteUncachePackage(pPlan, fRollback, dwIndex++, L"NetFx48Web");
781 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
782 dwExecuteCheckpointId += 2; // cache checkpoints
774 ValidateExecuteUncachePackage(pPlan, fRollback, dwIndex++, L"PackageA"); 783 ValidateExecuteUncachePackage(pPlan, fRollback, dwIndex++, L"PackageA");
775 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 784 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
776 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_UNREGISTER); 785 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_UNREGISTER);
@@ -793,7 +802,7 @@ namespace Bootstrapper
793 Assert::Equal(dwIndex, pPlan->cRollbackActions); 802 Assert::Equal(dwIndex, pPlan->cRollbackActions);
794 803
795 Assert::Equal(2ul, pPlan->cExecutePackagesTotal); 804 Assert::Equal(2ul, pPlan->cExecutePackagesTotal);
796 Assert::Equal(4ul, pPlan->cOverallProgressTicksTotal); 805 Assert::Equal(5ul, pPlan->cOverallProgressTicksTotal);
797 806
798 dwIndex = 0; 807 dwIndex = 0;
799 Assert::Equal(dwIndex, pPlan->cCleanActions); 808 Assert::Equal(dwIndex, pPlan->cCleanActions);
diff --git a/src/ext/NetFx/wixlib/NetCore3.1.12_x64.wxs b/src/ext/NetFx/wixlib/NetCore3.1.12_x64.wxs
index 990dc0bf..d3e87d2a 100644
--- a/src/ext/NetFx/wixlib/NetCore3.1.12_x64.wxs
+++ b/src/ext/NetFx/wixlib/NetCore3.1.12_x64.wxs
@@ -20,7 +20,7 @@
20 <WixVariable Id="AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" /> 20 <WixVariable Id="AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" />
21 21
22 <PackageGroup Id="$(var.AspNetCoreRedistId)"> 22 <PackageGroup Id="$(var.AspNetCoreRedistId)">
23 <ExePackage InstallArguments="$(var.AspNetCoreRedistInstallArguments)" RepairArguments="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments)" UninstallArguments="$(var.AspNetCoreRedistUninstallArguments)" PerMachine="yes" DetectCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.AspNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.AspNetCoreRedistLog)"> 23 <ExePackage InstallArguments="$(var.AspNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.AspNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.AspNetCoreRedistLog)" Cache="no">
24 <ExePackagePayload Name="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)aspnetcore-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.AspNetCoreRedistLink)" Description="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Hash="5CE9839CAE90FB2936033431F2905E97C7DC080DC50108D58714939CCCC6A265694B8259A3BF742A68BF04D9CFFB0602B0306DD401C4CE644BDB96C7D1168E59" ProductName="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Size="7841808" Version="3.1.12.21070" /> 24 <ExePackagePayload Name="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)aspnetcore-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.AspNetCoreRedistLink)" Description="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Hash="5CE9839CAE90FB2936033431F2905E97C7DC080DC50108D58714939CCCC6A265694B8259A3BF742A68BF04D9CFFB0602B0306DD401C4CE644BDB96C7D1168E59" ProductName="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Size="7841808" Version="3.1.12.21070" />
25 </ExePackage> 25 </ExePackage>
26 </PackageGroup> 26 </PackageGroup>
@@ -35,7 +35,7 @@
35 <WixVariable Id="DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" /> 35 <WixVariable Id="DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" />
36 36
37 <PackageGroup Id="$(var.DesktopNetCoreRedistId)"> 37 <PackageGroup Id="$(var.DesktopNetCoreRedistId)">
38 <ExePackage InstallArguments="$(var.DesktopNetCoreRedistInstallArguments)" RepairArguments="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments)" UninstallArguments="$(var.DesktopNetCoreRedistUninstallArguments)" PerMachine="yes" DetectCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DesktopNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DesktopNetCoreRedistLog)"> 38 <ExePackage InstallArguments="$(var.DesktopNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DesktopNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DesktopNetCoreRedistLog)" Cache="no">
39 <ExePackagePayload Name="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)windowsdesktop-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DesktopNetCoreRedistLink)" Description="Microsoft Windows Desktop Runtime - 3.1.12 (x64)" Hash="CD69B8722B2FF175FADD6774AB6A97F89292FC57A15CEC95218E79FFF1E26F46A7EFFFB15CE0F6D22B83B991F7083BB5C04F5158F87D298EA0F204933F8ECD27" ProductName="Microsoft Windows Desktop Runtime - 3.1.12 (x64)" Size="54284816" Version="3.1.12.29719" /> 39 <ExePackagePayload Name="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)windowsdesktop-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DesktopNetCoreRedistLink)" Description="Microsoft Windows Desktop Runtime - 3.1.12 (x64)" Hash="CD69B8722B2FF175FADD6774AB6A97F89292FC57A15CEC95218E79FFF1E26F46A7EFFFB15CE0F6D22B83B991F7083BB5C04F5158F87D298EA0F204933F8ECD27" ProductName="Microsoft Windows Desktop Runtime - 3.1.12 (x64)" Size="54284816" Version="3.1.12.29719" />
40 </ExePackage> 40 </ExePackage>
41 </PackageGroup> 41 </PackageGroup>
@@ -50,7 +50,7 @@
50 <WixVariable Id="DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" /> 50 <WixVariable Id="DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" />
51 51
52 <PackageGroup Id="$(var.DotNetCoreRedistId)"> 52 <PackageGroup Id="$(var.DotNetCoreRedistId)">
53 <ExePackage InstallArguments="$(var.DotNetCoreRedistInstallArguments)" RepairArguments="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments)" UninstallArguments="$(var.DotNetCoreRedistUninstallArguments)" PerMachine="yes" DetectCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DotNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DotNetCoreRedistLog)"> 53 <ExePackage InstallArguments="$(var.DotNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DotNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DotNetCoreRedistLog)" Cache="no">
54 <ExePackagePayload Name="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)dotnet-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DotNetCoreRedistLink)" Description="Microsoft .NET Core Runtime - 3.1.12 (x64)" Hash="9B3F882AE5DFDC8B50D3CEC4F3292292D658B2FECB84B3F73426FB3C16E6FC6B8E7118EF559CFAE25ED7A2C175FA4D89E18986CA3C05D15F706524FBB667F702" ProductName="Microsoft .NET Core Runtime - 3.1.12 (x64)" Size="26090616" Version="3.1.12.29719" /> 54 <ExePackagePayload Name="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)dotnet-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DotNetCoreRedistLink)" Description="Microsoft .NET Core Runtime - 3.1.12 (x64)" Hash="9B3F882AE5DFDC8B50D3CEC4F3292292D658B2FECB84B3F73426FB3C16E6FC6B8E7118EF559CFAE25ED7A2C175FA4D89E18986CA3C05D15F706524FBB667F702" ProductName="Microsoft .NET Core Runtime - 3.1.12 (x64)" Size="26090616" Version="3.1.12.29719" />
55 </ExePackage> 55 </ExePackage>
56 </PackageGroup> 56 </PackageGroup>
diff --git a/src/ext/NetFx/wixlib/NetCore3.1.12_x86.wxs b/src/ext/NetFx/wixlib/NetCore3.1.12_x86.wxs
index b6d5d371..e97b3144 100644
--- a/src/ext/NetFx/wixlib/NetCore3.1.12_x86.wxs
+++ b/src/ext/NetFx/wixlib/NetCore3.1.12_x86.wxs
@@ -20,7 +20,7 @@
20 <WixVariable Id="AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" /> 20 <WixVariable Id="AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" />
21 21
22 <PackageGroup Id="$(var.AspNetCoreRedistId)"> 22 <PackageGroup Id="$(var.AspNetCoreRedistId)">
23 <ExePackage InstallArguments="$(var.AspNetCoreRedistInstallArguments)" RepairArguments="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments)" UninstallArguments="$(var.AspNetCoreRedistUninstallArguments)" PerMachine="yes" DetectCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.AspNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.AspNetCoreRedistLog)"> 23 <ExePackage InstallArguments="$(var.AspNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.AspNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.AspNetCoreRedistLog)" Cache="no">
24 <ExePackagePayload Name="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)aspnetcore-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.AspNetCoreRedistLink)" Description="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Hash="03EE5F6D3B2AF8FFE2A5154BB05E50938E2D36E98D996D9E67A3C349DD0C8B3051D5A9628F48C51E006CEA0B1F4484B4BE51920FE5CA841060B0D2C6A12FD5D2" ProductName="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Size="7841808" Version="3.1.12.21070" /> 24 <ExePackagePayload Name="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)aspnetcore-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.AspNetCoreRedistLink)" Description="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Hash="03EE5F6D3B2AF8FFE2A5154BB05E50938E2D36E98D996D9E67A3C349DD0C8B3051D5A9628F48C51E006CEA0B1F4484B4BE51920FE5CA841060B0D2C6A12FD5D2" ProductName="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Size="7841808" Version="3.1.12.21070" />
25 </ExePackage> 25 </ExePackage>
26 </PackageGroup> 26 </PackageGroup>
@@ -35,7 +35,7 @@
35 <WixVariable Id="DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" /> 35 <WixVariable Id="DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" />
36 36
37 <PackageGroup Id="$(var.DesktopNetCoreRedistId)"> 37 <PackageGroup Id="$(var.DesktopNetCoreRedistId)">
38 <ExePackage InstallArguments="$(var.DesktopNetCoreRedistInstallArguments)" RepairArguments="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments)" UninstallArguments="$(var.DesktopNetCoreRedistUninstallArguments)" PerMachine="yes" DetectCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DesktopNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DesktopNetCoreRedistLog)"> 38 <ExePackage InstallArguments="$(var.DesktopNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DesktopNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DesktopNetCoreRedistLog)" Cache="no">
39 <ExePackagePayload Name="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)windowsdesktop-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DesktopNetCoreRedistLink)" Description="Microsoft Windows Desktop Runtime - 3.1.12 (x86)" Hash="C211A7F29D9B6FEEFCF0379B153FFBFB815157D3D494CFD7D0D84D619701EEA284BF12502094BCFF2BB2968213190454E7CE0E865FD623E78C2FCDAEBEF963DA" ProductName="Microsoft Windows Desktop Runtime - 3.1.12 (x86)" Size="48590696" Version="3.1.12.29719" /> 39 <ExePackagePayload Name="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)windowsdesktop-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DesktopNetCoreRedistLink)" Description="Microsoft Windows Desktop Runtime - 3.1.12 (x86)" Hash="C211A7F29D9B6FEEFCF0379B153FFBFB815157D3D494CFD7D0D84D619701EEA284BF12502094BCFF2BB2968213190454E7CE0E865FD623E78C2FCDAEBEF963DA" ProductName="Microsoft Windows Desktop Runtime - 3.1.12 (x86)" Size="48590696" Version="3.1.12.29719" />
40 </ExePackage> 40 </ExePackage>
41 </PackageGroup> 41 </PackageGroup>
@@ -50,7 +50,7 @@
50 <WixVariable Id="DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" /> 50 <WixVariable Id="DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" />
51 51
52 <PackageGroup Id="$(var.DotNetCoreRedistId)"> 52 <PackageGroup Id="$(var.DotNetCoreRedistId)">
53 <ExePackage InstallArguments="$(var.DotNetCoreRedistInstallArguments)" RepairArguments="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments)" UninstallArguments="$(var.DotNetCoreRedistUninstallArguments)" PerMachine="yes" DetectCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DotNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DotNetCoreRedistLog)"> 53 <ExePackage InstallArguments="$(var.DotNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DotNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DotNetCoreRedistLog)" Cache="no">
54 <ExePackagePayload Name="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)dotnet-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DotNetCoreRedistLink)" Description="Microsoft .NET Core Runtime - 3.1.12 (x86)" Hash="BA18F9028B19630D91017BEACCD8D79388125C228A83B5A62306108F3BB283617A7ED9B98785BC73192EC00E5D186DA767E940DCAB388699FAF274E437D0C16F" ProductName="Microsoft .NET Core Runtime - 3.1.12 (x86)" Size="23392184" Version="3.1.12.29719" /> 54 <ExePackagePayload Name="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)dotnet-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DotNetCoreRedistLink)" Description="Microsoft .NET Core Runtime - 3.1.12 (x86)" Hash="BA18F9028B19630D91017BEACCD8D79388125C228A83B5A62306108F3BB283617A7ED9B98785BC73192EC00E5D186DA767E940DCAB388699FAF274E437D0C16F" ProductName="Microsoft .NET Core Runtime - 3.1.12 (x86)" Size="23392184" Version="3.1.12.29719" />
55 </ExePackage> 55 </ExePackage>
56 </PackageGroup> 56 </PackageGroup>
diff --git a/src/ext/NetFx/wixlib/NetFx452.wxs b/src/ext/NetFx/wixlib/NetFx452.wxs
index 33f79db4..6c55a563 100644
--- a/src/ext/NetFx/wixlib/NetFx452.wxs
+++ b/src/ext/NetFx/wixlib/NetFx452.wxs
@@ -31,7 +31,7 @@
31 <WixVariable Id="NetFx452WebPackageDirectory" Value="redist\" Overridable="yes" /> 31 <WixVariable Id="NetFx452WebPackageDirectory" Value="redist\" Overridable="yes" />
32 32
33 <PackageGroup Id="$(var.NetFx452WebId)"> 33 <PackageGroup Id="$(var.NetFx452WebId)">
34 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx452FullWebLog].html&quot;" UninstallArguments="/uninstall /q /norestart /log &quot;[NetFx452FullWebLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx452WebDetectCondition)" InstallCondition="!(wix.NetFx452WebInstallCondition)" Id="$(var.NetFx452WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx452FullWebLog"> 34 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx452FullWebLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx452WebDetectCondition)" InstallCondition="!(wix.NetFx452WebInstallCondition)" Id="$(var.NetFx452WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx452FullWebLog" Cache="no">
35 <ExePackagePayload Name="!(wix.NetFx452WebPackageDirectory)NDP452-KB2901954-Web.exe" DownloadUrl="$(var.NetFx452WebLink)" Description="Microsoft .NET Framework 4.5.2 Setup" Hash="90A3A5A57EA8A6508EEE0D129303C7CB012AABF651DD9A6BEFC20DA3BBDB09FC47FD087645051D3D45BFF909DFC6E6039C22C4816FBC793A847E81701248639E" ProductName="Microsoft .NET Framework 4.5.2" Size="1118920" Version="4.5.51209.34209" /> 35 <ExePackagePayload Name="!(wix.NetFx452WebPackageDirectory)NDP452-KB2901954-Web.exe" DownloadUrl="$(var.NetFx452WebLink)" Description="Microsoft .NET Framework 4.5.2 Setup" Hash="90A3A5A57EA8A6508EEE0D129303C7CB012AABF651DD9A6BEFC20DA3BBDB09FC47FD087645051D3D45BFF909DFC6E6039C22C4816FBC793A847E81701248639E" ProductName="Microsoft .NET Framework 4.5.2" Size="1118920" Version="4.5.51209.34209" />
36 </ExePackage> 36 </ExePackage>
37 </PackageGroup> 37 </PackageGroup>
@@ -53,7 +53,7 @@
53 <WixVariable Id="NetFx452RedistPackageDirectory" Value="redist\" Overridable="yes" /> 53 <WixVariable Id="NetFx452RedistPackageDirectory" Value="redist\" Overridable="yes" />
54 54
55 <PackageGroup Id="$(var.NetFx452RedistId)"> 55 <PackageGroup Id="$(var.NetFx452RedistId)">
56 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx452FullLog].html&quot;" UninstallArguments="/uninstall /q /norestart /log &quot;[NetFx452FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx452RedistDetectCondition)" InstallCondition="!(wix.NetFx452RedistInstallCondition)" Id="$(var.NetFx452RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx452FullLog"> 56 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx452FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx452RedistDetectCondition)" InstallCondition="!(wix.NetFx452RedistInstallCondition)" Id="$(var.NetFx452RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx452FullLog" Cache="no">
57 <ExePackagePayload Name="!(wix.NetFx452RedistPackageDirectory)NDP452-KB2901907-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx452RedistLink)" Description="Microsoft .NET Framework 4.5.2 Setup" Hash="033D457229C4FE6EEA7B1E42A3A39DD4CF6A054C5E996CE036942DD2FE9623FD3A0634BE5DCB88506C1C61BF9FF6076F27B4ECEC38F8CF85603AF018111E584D" ProductName="Microsoft .NET Framework 4.5.2" Size="69999448" Version="4.5.51209.34209" /> 57 <ExePackagePayload Name="!(wix.NetFx452RedistPackageDirectory)NDP452-KB2901907-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx452RedistLink)" Description="Microsoft .NET Framework 4.5.2 Setup" Hash="033D457229C4FE6EEA7B1E42A3A39DD4CF6A054C5E996CE036942DD2FE9623FD3A0634BE5DCB88506C1C61BF9FF6076F27B4ECEC38F8CF85603AF018111E584D" ProductName="Microsoft .NET Framework 4.5.2" Size="69999448" Version="4.5.51209.34209" />
58 </ExePackage> 58 </ExePackage>
59 </PackageGroup> 59 </PackageGroup>
diff --git a/src/ext/NetFx/wixlib/NetFx46.wxs b/src/ext/NetFx/wixlib/NetFx46.wxs
index cb53be2e..99560a98 100644
--- a/src/ext/NetFx/wixlib/NetFx46.wxs
+++ b/src/ext/NetFx/wixlib/NetFx46.wxs
@@ -32,7 +32,7 @@
32 <WixVariable Id="NetFx46WebPackageDirectory" Value="redist\" Overridable="yes" /> 32 <WixVariable Id="NetFx46WebPackageDirectory" Value="redist\" Overridable="yes" />
33 33
34 <PackageGroup Id="$(var.NetFx46WebId)"> 34 <PackageGroup Id="$(var.NetFx46WebId)">
35 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx46FullLog].html&quot;" UninstallArguments="/uninstall /q /norestart /log &quot;[NetFx46FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx46WebDetectCondition)" InstallCondition="!(wix.NetFx46WebInstallCondition)" Id="$(var.NetFx46WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx46FullLog"> 35 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx46FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx46WebDetectCondition)" InstallCondition="!(wix.NetFx46WebInstallCondition)" Id="$(var.NetFx46WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx46FullLog" Cache="no">
36 <ExePackagePayload Name="!(wix.NetFx46WebPackageDirectory)NDP46-KB3045560-Web.exe" DownloadUrl="$(var.NetFx46WebLink)" Description="Microsoft .NET Framework 4.6 Setup" Hash="CAA5F4D4DB0C9DF34252FCB74CF7762214F69D2419865EBC1E6717E6B1348E59A7599A8DECAAB5CEE6974E59D1AE5A749F8C4EC07C8E4C80C90E77B996B3B205" ProductName="Microsoft .NET Framework 4.6" Size="1497400" Version="4.6.81.0" /> 36 <ExePackagePayload Name="!(wix.NetFx46WebPackageDirectory)NDP46-KB3045560-Web.exe" DownloadUrl="$(var.NetFx46WebLink)" Description="Microsoft .NET Framework 4.6 Setup" Hash="CAA5F4D4DB0C9DF34252FCB74CF7762214F69D2419865EBC1E6717E6B1348E59A7599A8DECAAB5CEE6974E59D1AE5A749F8C4EC07C8E4C80C90E77B996B3B205" ProductName="Microsoft .NET Framework 4.6" Size="1497400" Version="4.6.81.0" />
37 </ExePackage> 37 </ExePackage>
38 </PackageGroup> 38 </PackageGroup>
@@ -54,7 +54,7 @@
54 <WixVariable Id="NetFx46RedistPackageDirectory" Value="redist\" Overridable="yes" /> 54 <WixVariable Id="NetFx46RedistPackageDirectory" Value="redist\" Overridable="yes" />
55 55
56 <PackageGroup Id="$(var.NetFx46RedistId)"> 56 <PackageGroup Id="$(var.NetFx46RedistId)">
57 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx46FullLog].html&quot;" UninstallArguments="/uninstall /q /norestart /log &quot;[NetFx46FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx46RedistDetectCondition)" InstallCondition="!(wix.NetFx46RedistInstallCondition)" Id="$(var.NetFx46RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx46FullLog"> 57 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx46FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx46RedistDetectCondition)" InstallCondition="!(wix.NetFx46RedistInstallCondition)" Id="$(var.NetFx46RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx46FullLog" Cache="no">
58 <ExePackagePayload Name="!(wix.NetFx46RedistPackageDirectory)NDP46-KB3045557-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx46RedistLink)" Description="Microsoft .NET Framework 4.6 Setup" Hash="C6FC54F648F822515ADACB4C27E0A6DBD6A3EAF2BA3F069C0002750894ECC453EBED8BC8D4FF2AFD73C7B3445C1DA18D43FE361EA5195AE8522249DF36B84B7E" ProductName="Microsoft .NET Framework 4.6" Size="65444688" Version="4.6.81.0" /> 58 <ExePackagePayload Name="!(wix.NetFx46RedistPackageDirectory)NDP46-KB3045557-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx46RedistLink)" Description="Microsoft .NET Framework 4.6 Setup" Hash="C6FC54F648F822515ADACB4C27E0A6DBD6A3EAF2BA3F069C0002750894ECC453EBED8BC8D4FF2AFD73C7B3445C1DA18D43FE361EA5195AE8522249DF36B84B7E" ProductName="Microsoft .NET Framework 4.6" Size="65444688" Version="4.6.81.0" />
59 </ExePackage> 59 </ExePackage>
60 </PackageGroup> 60 </PackageGroup>
diff --git a/src/ext/NetFx/wixlib/NetFx461.wxs b/src/ext/NetFx/wixlib/NetFx461.wxs
index 95cc2876..d47e75bd 100644
--- a/src/ext/NetFx/wixlib/NetFx461.wxs
+++ b/src/ext/NetFx/wixlib/NetFx461.wxs
@@ -31,7 +31,7 @@
31 <WixVariable Id="NetFx461WebPackageDirectory" Value="redist\" Overridable="yes" /> 31 <WixVariable Id="NetFx461WebPackageDirectory" Value="redist\" Overridable="yes" />
32 32
33 <PackageGroup Id="$(var.NetFx461WebId)"> 33 <PackageGroup Id="$(var.NetFx461WebId)">
34 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx461FullLog].html&quot;" UninstallArguments="/uninstall /q /norestart /log &quot;[NetFx461FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx461WebDetectCondition)" InstallCondition="!(wix.NetFx461WebInstallCondition)" Id="$(var.NetFx461WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx461FullLog"> 34 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx461FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx461WebDetectCondition)" InstallCondition="!(wix.NetFx461WebInstallCondition)" Id="$(var.NetFx461WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx461FullLog" Cache="no">
35 <ExePackagePayload Name="!(wix.NetFx461WebPackageDirectory)NDP461-KB3102438-Web.exe" DownloadUrl="$(var.NetFx461WebLink)" Description="Microsoft .NET Framework 4.6.1 Setup" Hash="97C4DD638E2E0324D60BDD1D7BE85603EDBF969898469A524FB271EBA5E22B78CA67DB1F568F5C45393381F1E76408C366AD4A68A7BB00E23D1FB820E67DE99E" ProductName="Microsoft .NET Framework 4.6.1" Size="1424328" Version="4.6.1055.0" /> 35 <ExePackagePayload Name="!(wix.NetFx461WebPackageDirectory)NDP461-KB3102438-Web.exe" DownloadUrl="$(var.NetFx461WebLink)" Description="Microsoft .NET Framework 4.6.1 Setup" Hash="97C4DD638E2E0324D60BDD1D7BE85603EDBF969898469A524FB271EBA5E22B78CA67DB1F568F5C45393381F1E76408C366AD4A68A7BB00E23D1FB820E67DE99E" ProductName="Microsoft .NET Framework 4.6.1" Size="1424328" Version="4.6.1055.0" />
36 </ExePackage> 36 </ExePackage>
37 </PackageGroup> 37 </PackageGroup>
@@ -53,7 +53,7 @@
53 <WixVariable Id="NetFx461RedistPackageDirectory" Value="redist\" Overridable="yes" /> 53 <WixVariable Id="NetFx461RedistPackageDirectory" Value="redist\" Overridable="yes" />
54 54
55 <PackageGroup Id="$(var.NetFx461RedistId)"> 55 <PackageGroup Id="$(var.NetFx461RedistId)">
56 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx461FullLog].html&quot;" UninstallArguments="/uninstall /q /norestart /log &quot;[NetFx461FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx461RedistDetectCondition)" InstallCondition="!(wix.NetFx461RedistInstallCondition)" Id="$(var.NetFx461RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx461FullLog"> 56 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx461FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx461RedistDetectCondition)" InstallCondition="!(wix.NetFx461RedistInstallCondition)" Id="$(var.NetFx461RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx461FullLog" Cache="no">
57 <ExePackagePayload Name="!(wix.NetFx461RedistPackageDirectory)NDP461-KB3102436-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx461RedistLink)" Description="Microsoft .NET Framework 4.6.1 Setup" Hash="43BEF5EB278CF0954EAE1A6FEEC5A9852B932270508DD10647B9EA32DFD3832ECB58172B28707216709705BF0013FCEBB0B39DB31E38786FC2DAE219622EA00F" ProductName="Microsoft .NET Framework 4.6.1" Size="67681000" Version="4.6.1055.0" /> 57 <ExePackagePayload Name="!(wix.NetFx461RedistPackageDirectory)NDP461-KB3102436-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx461RedistLink)" Description="Microsoft .NET Framework 4.6.1 Setup" Hash="43BEF5EB278CF0954EAE1A6FEEC5A9852B932270508DD10647B9EA32DFD3832ECB58172B28707216709705BF0013FCEBB0B39DB31E38786FC2DAE219622EA00F" ProductName="Microsoft .NET Framework 4.6.1" Size="67681000" Version="4.6.1055.0" />
58 </ExePackage> 58 </ExePackage>
59 </PackageGroup> 59 </PackageGroup>
diff --git a/src/ext/NetFx/wixlib/NetFx462.wxs b/src/ext/NetFx/wixlib/NetFx462.wxs
index 146bae5f..b5e4b533 100644
--- a/src/ext/NetFx/wixlib/NetFx462.wxs
+++ b/src/ext/NetFx/wixlib/NetFx462.wxs
@@ -31,7 +31,7 @@
31 <WixVariable Id="NetFx462WebPackageDirectory" Value="redist\" Overridable="yes" /> 31 <WixVariable Id="NetFx462WebPackageDirectory" Value="redist\" Overridable="yes" />
32 32
33 <PackageGroup Id="$(var.NetFx462WebId)"> 33 <PackageGroup Id="$(var.NetFx462WebId)">
34 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx462FullLog].html&quot;" UninstallArguments="/uninstall /q /norestart /log &quot;[NetFx462FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx462WebDetectCondition)" InstallCondition="!(wix.NetFx462WebInstallCondition)" Id="$(var.NetFx462WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx462FullLog"> 34 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx462FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx462WebDetectCondition)" InstallCondition="!(wix.NetFx462WebInstallCondition)" Id="$(var.NetFx462WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx462FullLog" Cache="no">
35 <ExePackagePayload Name="!(wix.NetFx462WebPackageDirectory)NDP462-KB3151802-Web.exe" DownloadUrl="$(var.NetFx462WebLink)" Description="Microsoft .NET Framework 4.6.2 Setup" Hash="72CC8904EA9AC4248874FD888E2C63737DFFF920E4002EB1426318EFD2650D1D5055DFC80C1F398278F7246A3827FC0ED3C044471C67A40CDE66D3796F854DCE" ProductName="Microsoft .NET Framework 4.6.2" Size="1408232" Version="4.6.1590.0" /> 35 <ExePackagePayload Name="!(wix.NetFx462WebPackageDirectory)NDP462-KB3151802-Web.exe" DownloadUrl="$(var.NetFx462WebLink)" Description="Microsoft .NET Framework 4.6.2 Setup" Hash="72CC8904EA9AC4248874FD888E2C63737DFFF920E4002EB1426318EFD2650D1D5055DFC80C1F398278F7246A3827FC0ED3C044471C67A40CDE66D3796F854DCE" ProductName="Microsoft .NET Framework 4.6.2" Size="1408232" Version="4.6.1590.0" />
36 </ExePackage> 36 </ExePackage>
37 </PackageGroup> 37 </PackageGroup>
diff --git a/src/ext/NetFx/wixlib/NetFx472.wxs b/src/ext/NetFx/wixlib/NetFx472.wxs
index 57584a9e..c54e7957 100644
--- a/src/ext/NetFx/wixlib/NetFx472.wxs
+++ b/src/ext/NetFx/wixlib/NetFx472.wxs
@@ -29,7 +29,7 @@
29 <WixVariable Id="NetFx472WebPackageDirectory" Value="redist\" Overridable="yes" /> 29 <WixVariable Id="NetFx472WebPackageDirectory" Value="redist\" Overridable="yes" />
30 30
31 <PackageGroup Id="$(var.NetFx472WebId)"> 31 <PackageGroup Id="$(var.NetFx472WebId)">
32 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx472WebLog].html&quot;" UninstallArguments="/uninstall /q /norestart /log &quot;[NetFx472WebLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx472WebDetectCondition)" InstallCondition="!(wix.NetFx472WebInstallCondition)" Id="$(var.NetFx472WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx472WebLog"> 32 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx472WebLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx472WebDetectCondition)" InstallCondition="!(wix.NetFx472WebInstallCondition)" Id="$(var.NetFx472WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx472WebLog" Cache="no">
33 <ExePackagePayload Name="!(wix.NetFx472WebPackageDirectory)NDP472-KB4054531-Web.exe" DownloadUrl="$(var.NetFx472WebLink)" Description="Microsoft .NET Framework 4.7.2 Setup" Hash="213CDEE35D320FE126CB64FE59963DB355062A14592E0B2FC4D45C2EDEF5F6A91305D0674D27152869202E3440090DFC207A0C5EB14D812F61E437907A81887E" ProductName="Microsoft .NET Framework 4.7.2" Size="1399888" Version="4.7.3081.0" /> 33 <ExePackagePayload Name="!(wix.NetFx472WebPackageDirectory)NDP472-KB4054531-Web.exe" DownloadUrl="$(var.NetFx472WebLink)" Description="Microsoft .NET Framework 4.7.2 Setup" Hash="213CDEE35D320FE126CB64FE59963DB355062A14592E0B2FC4D45C2EDEF5F6A91305D0674D27152869202E3440090DFC207A0C5EB14D812F61E437907A81887E" ProductName="Microsoft .NET Framework 4.7.2" Size="1399888" Version="4.7.3081.0" />
34 </ExePackage> 34 </ExePackage>
35 </PackageGroup> 35 </PackageGroup>
@@ -51,7 +51,7 @@
51 <WixVariable Id="NetFx472RedistPackageDirectory" Value="redist\" Overridable="yes" /> 51 <WixVariable Id="NetFx472RedistPackageDirectory" Value="redist\" Overridable="yes" />
52 52
53 <PackageGroup Id="$(var.NetFx472RedistId)"> 53 <PackageGroup Id="$(var.NetFx472RedistId)">
54 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx472RedistLog].html&quot;" UninstallArguments="/uninstall /q /norestart /log &quot;[NetFx472RedistLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx472RedistDetectCondition)" InstallCondition="!(wix.NetFx472RedistInstallCondition)" Id="$(var.NetFx472RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx472RedistLog"> 54 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx472RedistLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx472RedistDetectCondition)" InstallCondition="!(wix.NetFx472RedistInstallCondition)" Id="$(var.NetFx472RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx472RedistLog" Cache="no">
55 <ExePackagePayload Name="!(wix.NetFx472RedistPackageDirectory)NDP472-KB4054530-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx472RedistLink)" Description="Microsoft .NET Framework 4.7.2 Setup" Hash="F4EA32D8189DD269FF02D68B39D7DE866AE5F46EEA5A71BF8F4715FB0E4F8B7AC64B274DFA7BFF69B52C719E65256906C8D92FDD355F52C977175AE3E1919098" ProductName="Microsoft .NET Framework 4.7.2" Size="83940592" Version="4.7.3081.0" /> 55 <ExePackagePayload Name="!(wix.NetFx472RedistPackageDirectory)NDP472-KB4054530-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx472RedistLink)" Description="Microsoft .NET Framework 4.7.2 Setup" Hash="F4EA32D8189DD269FF02D68B39D7DE866AE5F46EEA5A71BF8F4715FB0E4F8B7AC64B274DFA7BFF69B52C719E65256906C8D92FDD355F52C977175AE3E1919098" ProductName="Microsoft .NET Framework 4.7.2" Size="83940592" Version="4.7.3081.0" />
56 </ExePackage> 56 </ExePackage>
57 </PackageGroup> 57 </PackageGroup>
diff --git a/src/ext/NetFx/wixlib/NetFx48.wxs b/src/ext/NetFx/wixlib/NetFx48.wxs
index bfca5092..02fe3afa 100644
--- a/src/ext/NetFx/wixlib/NetFx48.wxs
+++ b/src/ext/NetFx/wixlib/NetFx48.wxs
@@ -29,7 +29,7 @@
29 <WixVariable Id="NetFx48WebPackageDirectory" Value="redist\" Overridable="yes" /> 29 <WixVariable Id="NetFx48WebPackageDirectory" Value="redist\" Overridable="yes" />
30 30
31 <PackageGroup Id="$(var.NetFx48WebId)"> 31 <PackageGroup Id="$(var.NetFx48WebId)">
32 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx48WebLog].html&quot;" UninstallArguments="/uninstall /q /norestart /log &quot;[NetFx48WebLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx48WebDetectCondition)" InstallCondition="!(wix.NetFx48WebInstallCondition)" Id="$(var.NetFx48WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx48WebLog"> 32 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx48WebLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx48WebDetectCondition)" InstallCondition="!(wix.NetFx48WebInstallCondition)" Id="$(var.NetFx48WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx48WebLog" Cache="no">
33 <ExePackagePayload Name="!(wix.NetFx48WebPackageDirectory)ndp48-web.exe" DownloadUrl="$(var.NetFx48WebLink)" Description="Microsoft .NET Framework 4.8 Setup" Hash="B09A3F6802741BD5E4A9598FF3F890FEB760D865C98F33B3CF6951C3ADE396C9819D6ECA562CAD6C339C53FC1AF88F7936DD09CBBAC22EE16FC67BAE076646B6" ProductName="Microsoft .NET Framework 4.8" Size="1443272" Version="4.8.4115.0" /> 33 <ExePackagePayload Name="!(wix.NetFx48WebPackageDirectory)ndp48-web.exe" DownloadUrl="$(var.NetFx48WebLink)" Description="Microsoft .NET Framework 4.8 Setup" Hash="B09A3F6802741BD5E4A9598FF3F890FEB760D865C98F33B3CF6951C3ADE396C9819D6ECA562CAD6C339C53FC1AF88F7936DD09CBBAC22EE16FC67BAE076646B6" ProductName="Microsoft .NET Framework 4.8" Size="1443272" Version="4.8.4115.0" />
34 </ExePackage> 34 </ExePackage>
35 </PackageGroup> 35 </PackageGroup>
@@ -51,7 +51,7 @@
51 <WixVariable Id="NetFx48RedistPackageDirectory" Value="redist\" Overridable="yes" /> 51 <WixVariable Id="NetFx48RedistPackageDirectory" Value="redist\" Overridable="yes" />
52 52
53 <PackageGroup Id="$(var.NetFx48RedistId)"> 53 <PackageGroup Id="$(var.NetFx48RedistId)">
54 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx48RedistLog].html&quot;" UninstallArguments="/uninstall /q /norestart /log &quot;[NetFx48RedistLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx48RedistDetectCondition)" InstallCondition="!(wix.NetFx48RedistInstallCondition)" Id="$(var.NetFx48RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx48RedistLog"> 54 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx48RedistLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx48RedistDetectCondition)" InstallCondition="!(wix.NetFx48RedistInstallCondition)" Id="$(var.NetFx48RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx48RedistLog" Cache="no">
55 <ExePackagePayload Name="!(wix.NetFx48RedistPackageDirectory)ndp48-x86-x64-allos-enu.exe" DownloadUrl="$(var.NetFx48RedistLink)" Description="Microsoft .NET Framework 4.8 Setup" Hash="DE7FD1B245BAAAC3A2BA1C2C650492AB71EB689902E281DDA02B069A441BAF9B1CF067D596C2E67C27EB58C341F572D8E7D481EC5D6E3A4CFB8D0C9AA7B55181" ProductName="Microsoft .NET Framework 4.8" Size="121319368" Version="4.8.4115.0" /> 55 <ExePackagePayload Name="!(wix.NetFx48RedistPackageDirectory)ndp48-x86-x64-allos-enu.exe" DownloadUrl="$(var.NetFx48RedistLink)" Description="Microsoft .NET Framework 4.8 Setup" Hash="DE7FD1B245BAAAC3A2BA1C2C650492AB71EB689902E281DDA02B069A441BAF9B1CF067D596C2E67C27EB58C341F572D8E7D481EC5D6E3A4CFB8D0C9AA7B55181" ProductName="Microsoft .NET Framework 4.8" Size="121319368" Version="4.8.4115.0" />
56 </ExePackage> 56 </ExePackage>
57 </PackageGroup> 57 </PackageGroup>