fix(installer): prevent issues with deferred properties containing semi-colons#1698
fix(installer): prevent issues with deferred properties containing semi-colons#1698Richard Markiewicz (thenextman) wants to merge 1 commit intomasterfrom
Conversation
Let maintainers know that an action is required on their side
|
There was a problem hiding this comment.
Pull request overview
This PR updates the Windows MSI installer property-passing mechanism to avoid failures when deferred custom action data contains semicolons by introducing Base64-encoded “shadow” properties (*_ENCODED) for selected string properties.
Changes:
- Added
Encodesupport toIWixProperty/WixProperty<T>plus session helpers to Base64 encode/decode string properties. - Updated the property generator to emit additional
*_ENCODEDproperties and to mark selected properties asencode: true. - Added an immediate
EncodePropertyDataaction and updated deferred action property mapping to pass encoded property IDs.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| package/WindowsManaged/Properties/WixProperty.cs | Adds Encode/Decode helpers and Encode flag on properties. |
| package/WindowsManaged/Properties/GatewayProperties.g.tt | Extends generator to emit Encode metadata and *_ENCODED properties; marks some properties as encoded. |
| package/WindowsManaged/Properties/GatewayProperties.g.cs | Regenerated output reflecting Encode and *_ENCODED properties. |
| package/WindowsManaged/Actions/GatewayActions.cs | Adds EncodePropertyData action and passes encoded property IDs in UsesProperties. |
| package/WindowsManaged/Actions/CustomActions.cs | Uses Decode for encoded properties and adds the EncodePropertyData custom action. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
7f8a8b4 to
dc68c21
Compare
|
Don't know what's going on with CI 🤷 |
|
Looks like it’s not happy with Rust formatting… which is strange since you changed nothing 🤷 |
dc68c21 to
7efdb06
Compare
WiX encodes multiple properties in custom action data separated by a semi-colon; this is problematic if a property value itself contains a semi-colon. Most visibly this will break the installer if a certificate password contains a semi-colon.