Skip to content

Conversation

mhegazy
Copy link
Contributor

@mhegazy mhegazy commented Oct 6, 2025

MSI uses property name case to define scope. Public properties (i.e., can be set from outside the MSI, e.g., command line) are all uppercase, and ones set within the installer are lowercase. See more in the official docs

Since we are passing these properties to the MSI from the chainer, they need to be uppercase when they are being read. I have also changed the setting side to make sure we are consistent and do not run into this issue again.

Here is what the install log looks at runtime before this change:

MSI (s) (58:C8) [08:59:48:347]: Running product '{2873CAB4-2270-44BE-8A7E-FB17DB168601}' with user privileges: It's not assigned.
MSI (s) (58:C8) [08:59:48:347]: PROPERTY CHANGE: Adding INSTALLROOT property. Its value is 'C:\Users\mohamed.hegazy\AppData\Local\Programs\Swift'.
MSI (s) (58:C8) [08:59:48:347]: PROPERTY CHANGE: Adding INSTALLARM64SDK property. Its value is '1'.
MSI (s) (58:C8) [08:59:48:347]: PROPERTY CHANGE: Adding INSTALLARM64REDIST property. Its value is '1'.
MSI (s) (58:C8) [08:59:48:347]: PROPERTY CHANGE: Adding INSTALLAMD64SDK property. Its value is '1'.
MSI (s) (58:C8) [08:59:48:347]: PROPERTY CHANGE: Adding INSTALLAMD64REDIST property. Its value is '1'.
MSI (s) (58:C8) [08:59:48:347]: PROPERTY CHANGE: Adding INSTALLX86SDK property. Its value is '1'.
MSI (s) (58:C8) [08:59:48:347]: PROPERTY CHANGE: Adding INSTALLX86REDIST property. Its value is '1'.

@mhegazy mhegazy changed the title Use upper case for property names that are passed into the msi Use uppercase for property names that are passed into the msi Oct 6, 2025
Copy link
Member

@compnerd compnerd left a comment

Choose a reason for hiding this comment

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

Please update the docs as well

@compnerd compnerd changed the title Use uppercase for property names that are passed into the msi WiX: Use uppercase for property names that are passed into the msi Oct 6, 2025
@mhegazy
Copy link
Contributor Author

mhegazy commented Oct 6, 2025

Please update the docs as well

Do not think we expose any of the MSI properties in docs, do we?

@compnerd
Copy link
Member

compnerd commented Oct 6, 2025

@compnerd
Copy link
Member

compnerd commented Oct 6, 2025

@mhegazy
Copy link
Contributor Author

mhegazy commented Oct 7, 2025

@compnerd did a round of local testing and it passed with latest changes. can you please trigger another build

@mhegazy
Copy link
Contributor Author

mhegazy commented Oct 7, 2025

https://github.com/swiftlang/swift-installer-scripts/tree/main/platforms/Windows#install-directory-and-feature-selection exposes all the options

@compnerd these are the chainer options. these are options to the windows.msi that the chainer sets based on the public options. these are never exposed unless you msiexec the windows.msi directelly.

@compnerd
Copy link
Member

compnerd commented Oct 7, 2025

Superseded by #468

@compnerd compnerd closed this Oct 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants