diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2021-02-22 19:58:44 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-02-22 20:25:06 -0600 |
commit | a98115d996d65834e7c8d593c10d2cfa66096ccd (patch) | |
tree | 11857990bfadee576b4a8d6d8ccc2db04dfafe7b /src/engine/apply.cpp | |
parent | 4f4c85ed66f1b2dfb1bec76d54d7b50c637d5bfa (diff) | |
download | wix-a98115d996d65834e7c8d593c10d2cfa66096ccd.tar.gz wix-a98115d996d65834e7c8d593c10d2cfa66096ccd.tar.bz2 wix-a98115d996d65834e7c8d593c10d2cfa66096ccd.zip |
Fix patch registration states during plan and apply.
Add logging for slipstreamed patches.
#6297
Diffstat (limited to 'src/engine/apply.cpp')
-rw-r--r-- | src/engine/apply.cpp | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/src/engine/apply.cpp b/src/engine/apply.cpp index 55141ef9..44ff9429 100644 --- a/src/engine/apply.cpp +++ b/src/engine/apply.cpp | |||
@@ -2032,7 +2032,7 @@ static HRESULT ExecuteMsiPackage( | |||
2032 | LExit: | 2032 | LExit: |
2033 | if (fExecuted) | 2033 | if (fExecuted) |
2034 | { | 2034 | { |
2035 | MsiEngineUpdateInstallRegistrationState(pExecuteAction, hrExecute, fInsideMsiTransaction); | 2035 | MsiEngineUpdateInstallRegistrationState(pExecuteAction, fRollback, hrExecute, fInsideMsiTransaction); |
2036 | } | 2036 | } |
2037 | 2037 | ||
2038 | if (fBeginCalled) | 2038 | if (fBeginCalled) |
@@ -2248,7 +2248,20 @@ static HRESULT ExecuteDependencyAction( | |||
2248 | { | 2248 | { |
2249 | pAction->packageDependency.pPackage->cacheRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT; | 2249 | pAction->packageDependency.pPackage->cacheRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT; |
2250 | } | 2250 | } |
2251 | if (BURN_PACKAGE_REGISTRATION_STATE_IGNORED == pAction->packageDependency.pPackage->installRegistrationState) | 2251 | |
2252 | if (BURN_PACKAGE_TYPE_MSP == pAction->packageDependency.pPackage->type) | ||
2253 | { | ||
2254 | for (DWORD i = 0; i < pAction->packageDependency.pPackage->Msp.cTargetProductCodes; ++i) | ||
2255 | { | ||
2256 | BURN_MSPTARGETPRODUCT* pTargetProduct = pAction->packageDependency.pPackage->Msp.rgTargetProducts + i; | ||
2257 | |||
2258 | if (BURN_PACKAGE_REGISTRATION_STATE_IGNORED == pTargetProduct->registrationState) | ||
2259 | { | ||
2260 | pTargetProduct->registrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT; | ||
2261 | } | ||
2262 | } | ||
2263 | } | ||
2264 | else if (BURN_PACKAGE_REGISTRATION_STATE_IGNORED == pAction->packageDependency.pPackage->installRegistrationState) | ||
2252 | { | 2265 | { |
2253 | pAction->packageDependency.pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT; | 2266 | pAction->packageDependency.pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT; |
2254 | } | 2267 | } |
@@ -2259,7 +2272,20 @@ static HRESULT ExecuteDependencyAction( | |||
2259 | { | 2272 | { |
2260 | pAction->packageDependency.pPackage->cacheRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_IGNORED; | 2273 | pAction->packageDependency.pPackage->cacheRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_IGNORED; |
2261 | } | 2274 | } |
2262 | if (BURN_PACKAGE_REGISTRATION_STATE_PRESENT == pAction->packageDependency.pPackage->installRegistrationState) | 2275 | |
2276 | if (BURN_PACKAGE_TYPE_MSP == pAction->packageDependency.pPackage->type) | ||
2277 | { | ||
2278 | for (DWORD i = 0; i < pAction->packageDependency.pPackage->Msp.cTargetProductCodes; ++i) | ||
2279 | { | ||
2280 | BURN_MSPTARGETPRODUCT* pTargetProduct = pAction->packageDependency.pPackage->Msp.rgTargetProducts + i; | ||
2281 | |||
2282 | if (BURN_PACKAGE_REGISTRATION_STATE_PRESENT == pTargetProduct->registrationState) | ||
2283 | { | ||
2284 | pTargetProduct->registrationState = BURN_PACKAGE_REGISTRATION_STATE_IGNORED; | ||
2285 | } | ||
2286 | } | ||
2287 | } | ||
2288 | else if (BURN_PACKAGE_REGISTRATION_STATE_PRESENT == pAction->packageDependency.pPackage->installRegistrationState) | ||
2263 | { | 2289 | { |
2264 | pAction->packageDependency.pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_IGNORED; | 2290 | pAction->packageDependency.pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_IGNORED; |
2265 | } | 2291 | } |