Clarify some manifest values and add examples#6277
Conversation
This comment has been minimized.
This comment has been minimized.
JohnMcPMS
left a comment
There was a problem hiding this comment.
The changes seem reasonable to me, but I don' actually touch the schema much so I would like someone else to take a look too.
The flow for semantic changes to the schema as part of a new minor version also requires quite a bit more setup. See #5997 and/or #5011.
I think I will also create some additional documentation to prevent the need for you to parse through those if you want to wait for that.
| }, | ||
| "UpgradeCode": { | ||
| "type": [ "string", "null" ], | ||
| "pattern": "^{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}}$", |
There was a problem hiding this comment.
I could be mistaken, but I believe I've seen instances of a product code or an upgrade code value not being a GUID. In general, MSI product codes and upgrade codes do follow that convention, but I'm concerned this might break some things.
There was a problem hiding this comment.
I searched the community repository and found none (for upgrade code, clearly not true for product code but that is not what we are talking about here). Upgrade codes are strictly a MSI concept and will always be a GUID.
Or to put it another way, how would a non-GUID work? Where in the registry would it be stored and which Win32/MSI API provides enumeration support?
📖 Description
Notes:
UpgradeCodeis restricted only to GUIDs because this is a MSI feature. I have verified that all existing manifests in the community repository only uses GUIDs here.DefaultInstallLocationis restricted to strings starting with%or\. The thinking is that the only sane values are%ProgramFiles%\MyApp,%LOCALAPPDATA%\Programs\MyAppand\AppInRootOfDrive.🔗 References
Fixes some of the issues reported in #6221
🔍 Validation
None/YOLO
✅ Checklist
📋 Issue Type
Microsoft Reviewers: Open in CodeFlow