diff options
Diffstat (limited to 'src/burn/engine/apply.cpp')
| -rw-r--r-- | src/burn/engine/apply.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/burn/engine/apply.cpp b/src/burn/engine/apply.cpp index 58d41b28..f0b78e81 100644 --- a/src/burn/engine/apply.cpp +++ b/src/burn/engine/apply.cpp | |||
| @@ -549,12 +549,19 @@ extern "C" HRESULT ApplyCache( | |||
| 549 | case BURN_CACHE_ACTION_TYPE_PACKAGE: | 549 | case BURN_CACHE_ACTION_TYPE_PACKAGE: |
| 550 | pPackage = pCacheAction->package.pPackage; | 550 | pPackage = pCacheAction->package.pPackage; |
| 551 | 551 | ||
| 552 | if (!pPackage->fPerMachine && !cacheContext.wzLayoutDirectory) | 552 | if (!cacheContext.wzLayoutDirectory) |
| 553 | { | 553 | { |
| 554 | hr = CacheGetCompletedPath(FALSE, pPackage->sczCacheId, &pPackage->sczCacheFolder); | 554 | if (!pPackage->fPerMachine || INVALID_HANDLE_VALUE == cacheContext.hPipe) |
| 555 | ExitOnFailure(hr, "Failed to get cached path for package with cache id: %ls", pPackage->sczCacheId); | 555 | { |
| 556 | hr = CachePreparePackage(pPackage); | ||
| 556 | 557 | ||
| 557 | cacheContext.hPipe = INVALID_HANDLE_VALUE; | 558 | cacheContext.hPipe = INVALID_HANDLE_VALUE; |
| 559 | } | ||
| 560 | else | ||
| 561 | { | ||
| 562 | hr = ElevationCachePreparePackage(hPipe, pPackage); | ||
| 563 | } | ||
| 564 | LogExitOnFailure(hr, MSG_CACHE_PREPARE_PACKAGE_FAILED, "Cache prepare package failed: %ls", pPackage->sczId, NULL, NULL); | ||
| 558 | } | 565 | } |
| 559 | 566 | ||
| 560 | hr = ApplyCachePackage(&cacheContext, pPackage); | 567 | hr = ApplyCachePackage(&cacheContext, pPackage); |
