Skip to content

fix(installer): prevent issues with deferred properties containing semi-colons#1698

Open
Richard Markiewicz (thenextman) wants to merge 1 commit intomasterfrom
installer/deferred-properties
Open

fix(installer): prevent issues with deferred properties containing semi-colons#1698
Richard Markiewicz (thenextman) wants to merge 1 commit intomasterfrom
installer/deferred-properties

Conversation

@thenextman
Copy link
Member

@thenextman Richard Markiewicz (thenextman) commented Feb 28, 2026

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.

@github-actions
Copy link

Let maintainers know that an action is required on their side

  • Add the label release-required Please cut a new release (Devolutions Gateway, Devolutions Agent, Jetsocat, PowerShell module) when you request a maintainer to cut a new release (Devolutions Gateway, Devolutions Agent, Jetsocat, PowerShell module)

  • Add the label release-blocker Follow-up is required before cutting a new release if a follow-up is required before cutting a new release

  • Add the label publish-required Please publish libraries (`Devolutions.Gateway.Utils`, OpenAPI clients, etc) when you request a maintainer to publish libraries (Devolutions.Gateway.Utils, OpenAPI clients, etc.)

  • Add the label publish-blocker Follow-up is required before publishing libraries if a follow-up is required before publishing libraries

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 Encode support to IWixProperty/WixProperty<T> plus session helpers to Base64 encode/decode string properties.
  • Updated the property generator to emit additional *_ENCODED properties and to mark selected properties as encode: true.
  • Added an immediate EncodePropertyData action 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.

@thenextman Richard Markiewicz (thenextman) marked this pull request as ready for review February 28, 2026 02:14
@thenextman
Copy link
Member Author

Don't know what's going on with CI 🤷

@CBenoit
Copy link
Member

Looks like it’s not happy with Rust formatting… which is strange since you changed nothing 🤷
Let me check that!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants