You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I use a custom managed BA and recently upgraded from WiX 3.6 to 3.7.
The chain contains MSIs only. (The custom BA allows for package selection, i.e. not all MSIs in the chain will be necessarily installed after the BA run finishes.)
The behavior can be reproduced independently from my custom BA using a very simple authoring containing dummy test MSIs with install conditions that are trivially true or false.
To reproduce, I install the bundle, then re-run the BA to modify the existing installation, and observe the planned states for a package that is absent:
In 3.6, the behavior is as follows:
If the install condition evaluates to true, the log states:
Detected package: ThirdParty, state: Absent, cached: None
[...]
Planned package: ThirdParty, state: Absent, default requested: None, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: No, dependency: None
If the install condition evaluates to false, the log states:
Detected package: Prereq.x86, state: Absent, cached: None
[...]
Planned package: Prereq.x86, state: Absent, default requested: Absent, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: No, dependency: None
(Since the install condition itself is not directly accessible via the managed API, I therefore took "default requested: Absent" to mean that it evaluated to false, and true otherwise.)
In 3.7 (and the current 3.8 beta builds), the behavior has changed:
If the install condition evaluates to true, the log states:
Detected package: ThirdParty, state: Absent, cached: None
[...]
Planned package: ThirdParty, state: Absent, default requested: Absent, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: No, dependency: None
If the install condition evaluates to false, the log states:
Detected package: Prereq.x86, state: Absent, cached: None
[...]
Planned package: Prereq.x86, state: Absent, default requested: Absent, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: No, dependency: None
The problem is that the default request is now "Absent" in both cases, and I have no way of telling the difference between a package that shouldn't be installed at all because its install condition failed, and a package that simply wasn't installed last time, but is allowed to be added later. (Therefore I can't override the planning in the BA either.)
While the actual execute action is the same (i.e. "None"), I'd even argue that requesting "Absent" is wrong: Burn shouldn't order packages to be absent per default if their install condition has been met.
This completely breaks my workflow; I use the default request to enable/disable selection options in the UX. Please restore the 3.6 behavior, or, if there is a good reason for it which evades me, provide some other means to access the result of the install condition evaluation (during Detect, maybe?)
I use a custom managed BA and recently upgraded from WiX 3.6 to 3.7.
The chain contains MSIs only. (The custom BA allows for package selection, i.e. not all MSIs in the chain will be necessarily installed after the BA run finishes.)
The behavior can be reproduced independently from my custom BA using a very simple authoring containing dummy test MSIs with install conditions that are trivially true or false.
To reproduce, I install the bundle, then re-run the BA to modify the existing installation, and observe the planned states for a package that is absent:
In 3.6, the behavior is as follows:
If the install condition evaluates to true, the log states:
If the install condition evaluates to false, the log states:
(Since the install condition itself is not directly accessible via the managed API, I therefore took "default requested: Absent" to mean that it evaluated to false, and true otherwise.)
In 3.7 (and the current 3.8 beta builds), the behavior has changed:
If the install condition evaluates to true, the log states:
If the install condition evaluates to false, the log states:
The problem is that the default request is now "Absent" in both cases, and I have no way of telling the difference between a package that shouldn't be installed at all because its install condition failed, and a package that simply wasn't installed last time, but is allowed to be added later. (Therefore I can't override the planning in the BA either.)
While the actual execute action is the same (i.e. "None"), I'd even argue that requesting "Absent" is wrong: Burn shouldn't order packages to be absent per default if their install condition has been met.
This completely breaks my workflow; I use the default request to enable/disable selection options in the UX. Please restore the 3.6 behavior, or, if there is a good reason for it which evades me, provide some other means to access the result of the install condition evaluation (during Detect, maybe?)
The text was updated successfully, but these errors were encountered: