diff options
author | Bob Arnson <bob@firegiant.com> | 2025-04-08 21:05:24 -0400 |
---|---|---|
committer | Bob Arnson <bob@firegiant.com> | 2025-04-08 21:05:24 -0400 |
commit | f892f972ca59e04a727e0ded488741205d2748e8 (patch) | |
tree | 11a8bc7e7d497dcba7a512d0219bb77c630bc679 | |
parent | 8c7432e50072e009353ea5f2c956ccf453476f71 (diff) | |
download | wix-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.cpp | 6 | ||||
-rw-r--r-- | src/burn/engine/core.h | 2 | ||||
-rw-r--r-- | src/burn/test/BurnUnitTest/PlanTest.cpp | 12 |
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 | |||
46 | const LPCWSTR BURN_BUNDLE_INSTALLED = L"WixBundleInstalled"; | 46 | const LPCWSTR BURN_BUNDLE_INSTALLED = L"WixBundleInstalled"; |
47 | const LPCWSTR BURN_BUNDLE_ELEVATED = L"WixBundleElevated"; | 47 | const LPCWSTR BURN_BUNDLE_ELEVATED = L"WixBundleElevated"; |
48 | const LPCWSTR BURN_BUNDLE_PROVIDER_KEY = L"WixBundleProviderKey"; | 48 | const LPCWSTR BURN_BUNDLE_PROVIDER_KEY = L"WixBundleProviderKey"; |
49 | const LPCWSTR BURN_BUNDLE_SOURCE_PROCESS_PATH = L"WixBundleSourceProcessPath"; | ||
50 | const LPCWSTR BURN_BUNDLE_SOURCE_PROCESS_FOLDER = L"WixBundleSourceProcessFolder"; | ||
49 | const LPCWSTR BURN_BUNDLE_TAG = L"WixBundleTag"; | 51 | const LPCWSTR BURN_BUNDLE_TAG = L"WixBundleTag"; |
50 | const LPCWSTR BURN_BUNDLE_UILEVEL = L"WixBundleUILevel"; | 52 | const LPCWSTR BURN_BUNDLE_UILEVEL = L"WixBundleUILevel"; |
51 | const LPCWSTR BURN_BUNDLE_VERSION = L"WixBundleVersion"; | 53 | const 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) |