aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2025-04-08 21:05:24 -0400
committerBob Arnson <bob@firegiant.com>2025-04-08 21:05:24 -0400
commitf892f972ca59e04a727e0ded488741205d2748e8 (patch)
tree11a8bc7e7d497dcba7a512d0219bb77c630bc679
parent8c7432e50072e009353ea5f2c956ccf453476f71 (diff)
downloadwix-bob/WixBundleSourceProcess.tar.gz
wix-bob/WixBundleSourceProcess.tar.bz2
wix-bob/WixBundleSourceProcess.zip
Bring back WixBundleSourceProcess* variables.bob/WixBundleSourceProcess
Fixes https://github.com/wixtoolset/issues/issues/9029
-rw-r--r--src/burn/engine/cache.cpp6
-rw-r--r--src/burn/engine/core.h2
-rw-r--r--src/burn/test/BurnUnitTest/PlanTest.cpp12
3 files changed, 20 insertions, 0 deletions
diff --git a/src/burn/engine/cache.cpp b/src/burn/engine/cache.cpp
index 16db4a81..e432df69 100644
--- a/src/burn/engine/cache.cpp
+++ b/src/burn/engine/cache.cpp
@@ -260,6 +260,9 @@ extern "C" HRESULT CacheInitializeSources(
260 hr = PathForCurrentProcess(&sczCurrentPath, NULL); 260 hr = PathForCurrentProcess(&sczCurrentPath, NULL);
261 ExitOnFailure(hr, "Failed to get current process path."); 261 ExitOnFailure(hr, "Failed to get current process path.");
262 262
263 hr = VariableSetString(pVariables, BURN_BUNDLE_SOURCE_PROCESS_PATH, sczCurrentPath, FALSE, FALSE);
264 ExitOnFailure(hr, "Failed to set %ls variable.", BURN_BUNDLE_SOURCE_PROCESS_PATH);
265
263 // Determine if we are running from the package cache or not. 266 // Determine if we are running from the package cache or not.
264 hr = CacheGetCompletedPath(pCache, pRegistration->fPerMachine, pRegistration->sczCode, &sczCompletedFolder); 267 hr = CacheGetCompletedPath(pCache, pRegistration->fPerMachine, pRegistration->sczCode, &sczCompletedFolder);
265 ExitOnFailure(hr, "Failed to get completed path for bundle."); 268 ExitOnFailure(hr, "Failed to get completed path for bundle.");
@@ -275,6 +278,9 @@ extern "C" HRESULT CacheInitializeSources(
275 hr = PathGetDirectory(sczCurrentPath, &pCache->sczSourceProcessFolder); 278 hr = PathGetDirectory(sczCurrentPath, &pCache->sczSourceProcessFolder);
276 ExitOnFailure(hr, "Failed to initialize cache source folder."); 279 ExitOnFailure(hr, "Failed to initialize cache source folder.");
277 280
281 hr = VariableSetString(pVariables, BURN_BUNDLE_SOURCE_PROCESS_FOLDER, pCache->sczSourceProcessFolder, FALSE, FALSE);
282 ExitOnFailure(hr, "Failed to set %ls variable.", BURN_BUNDLE_SOURCE_PROCESS_FOLDER);
283
278 // If we're not running from the cache, ensure the original source is set. 284 // If we're not running from the cache, ensure the original source is set.
279 if (!pCache->fRunningFromCache) 285 if (!pCache->fRunningFromCache)
280 { 286 {
diff --git a/src/burn/engine/core.h b/src/burn/engine/core.h
index c5d0a370..cf615e35 100644
--- a/src/burn/engine/core.h
+++ b/src/burn/engine/core.h
@@ -46,6 +46,8 @@ const LPCWSTR BURN_BUNDLE_FORCED_RESTART_PACKAGE = L"WixBundleForcedRestartPacka
46const LPCWSTR BURN_BUNDLE_INSTALLED = L"WixBundleInstalled"; 46const LPCWSTR BURN_BUNDLE_INSTALLED = L"WixBundleInstalled";
47const LPCWSTR BURN_BUNDLE_ELEVATED = L"WixBundleElevated"; 47const LPCWSTR BURN_BUNDLE_ELEVATED = L"WixBundleElevated";
48const LPCWSTR BURN_BUNDLE_PROVIDER_KEY = L"WixBundleProviderKey"; 48const LPCWSTR BURN_BUNDLE_PROVIDER_KEY = L"WixBundleProviderKey";
49const LPCWSTR BURN_BUNDLE_SOURCE_PROCESS_PATH = L"WixBundleSourceProcessPath";
50const LPCWSTR BURN_BUNDLE_SOURCE_PROCESS_FOLDER = L"WixBundleSourceProcessFolder";
49const LPCWSTR BURN_BUNDLE_TAG = L"WixBundleTag"; 51const LPCWSTR BURN_BUNDLE_TAG = L"WixBundleTag";
50const LPCWSTR BURN_BUNDLE_UILEVEL = L"WixBundleUILevel"; 52const LPCWSTR BURN_BUNDLE_UILEVEL = L"WixBundleUILevel";
51const LPCWSTR BURN_BUNDLE_VERSION = L"WixBundleVersion"; 53const LPCWSTR BURN_BUNDLE_VERSION = L"WixBundleVersion";
diff --git a/src/burn/test/BurnUnitTest/PlanTest.cpp b/src/burn/test/BurnUnitTest/PlanTest.cpp
index e426cb09..25a0cb35 100644
--- a/src/burn/test/BurnUnitTest/PlanTest.cpp
+++ b/src/burn/test/BurnUnitTest/PlanTest.cpp
@@ -2990,6 +2990,18 @@ namespace Bootstrapper
2990 ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[1], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_PRESENT, BURN_PACKAGE_REGISTRATION_STATE_PRESENT); 2990 ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[1], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_PRESENT, BURN_PACKAGE_REGISTRATION_STATE_PRESENT);
2991 } 2991 }
2992 2992
2993 [Fact]
2994 void ValidateCacheVariables()
2995 {
2996 BURN_ENGINE_STATE engineState = { };
2997 BURN_ENGINE_STATE* pEngineState = &engineState;
2998
2999 InitializeEngineStateForCorePlan(wzSlipstreamModifiedManifestFileName, pEngineState);
3000
3001 Assert::EndsWith(gcnew String(L".exe"), VariableGetStringHelper(&pEngineState->variables, BURN_BUNDLE_SOURCE_PROCESS_PATH));
3002 Assert::EndsWith(gcnew String(L"\\"), VariableGetStringHelper(&pEngineState->variables, BURN_BUNDLE_SOURCE_PROCESS_FOLDER));
3003 }
3004
2993 private: 3005 private:
2994 // This doesn't initialize everything, just enough for CorePlan to work. 3006 // This doesn't initialize everything, just enough for CorePlan to work.
2995 void InitializeEngineStateForCorePlan(LPCWSTR wzManifestFileName, BURN_ENGINE_STATE* pEngineState) 3007 void InitializeEngineStateForCorePlan(LPCWSTR wzManifestFileName, BURN_ENGINE_STATE* pEngineState)