## Summary
A WiX bundle using `MsiPackage` was unable to pass `ADDLOCAL` parameters to configure features in a third-party MSI during installation. Burn (WiX's bootstrapper engine) prohibits setting MSI properties like `ADDLOCAL` directly due to internal control requirements. The **correct approach uses MST transforms** instead of `MsiProperty` to define feature selections.
## Root Cause
- **Burn reserves critical MSI properties** including `ADDLOCAL`, `REINSTALLMODE`, and `ALLUSERS` for internal management.
- `MsiProperty` attempts to override Burn-controlled properties trigger compilation errors because:
- It risks creating **inconsistent installation states** (e.g., conflicting feature selections between Burn and the MSI).
- Burn **internally manages installation sequencing** and state tracking, requiring control of these properties.
## Why This Happens in Real Systems
- **Third-party dependencies** often require specific feature configurations (`ADDLOCAL`, `REMOVE`) during silent/automated installs.
- WiX bundles wrap existing MSIs with **predetermined configuration needs**, but Burn's property restrictions block direct parameter passing.
- **Bootstrapper limitations** intentionally prioritize installation integrity over flexibility for reserved properties.
## Real-World Impact
- **Installation failures** for dependent components due to incorrect feature installation.
- **Manual configuration overhead** if users must临床表现设置第三方组件 post-install.
- **Deployment delays** while diagnosing Burn's obscure property-restriction errors.
- **Solution complexity** increases due to the need for MST authoring tools.
## Example or Code
```xml
How Senior Engineers Fix It
- Reject direct property overrides: Never use
MsiProperty for Burn-controlled properties.
- Author a transform (MST):
- Use
MSTransform or Orca/MSI editor to generate a transform setting feature states.
- Embed the MST in the bundle or deploy it alongside the MSI.
- Apply via TRANSFORMS property: Reference the MST path in
MsiProperty utilizing the non-restricted TRANSFORMS property.
- Validate with logging: Enable MSI logging (
LogPathVariable) to confirm feature installation states.
Why Juniors Miss It
- Focus on syntax over lifecycle: Attempting to treat MSI packages identically inside/outside bundles instead of understanding Burn’s imposed constraints.
- Misinterpreting errors: Assuming WiX’s
MsiProperty restriction is a bug rather than a design constraint.
- Lacking MST familiarity: Unaware that transforms are the standard mechanism for modifying feature states in Windows Installer.
- Insufficient logging analysis: Not enabling MSI/Burn logs to debug actual installation sequence behavior.