Installation package handling - specify proper standard for Windows install packages
- Dominant language
- C#
- Stars
- 11.5k
- Forks
- 960
- PR merge metrics
- No merged PRs in 30d
Description
At the moment .msi or any other install packages are handled through
`chocolatey\infrastructure.app\services\RegistryService.cs / get_installer_keys` function which basically scans through all registry keys `SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall` after installation.
Some of registry structure is designed indeed from installation perspective, like you have a lot of useful data like
`DisplayName`, `InstallLocation` - but not suited for choco requirements - choco misses such information as Package id, and version as well.
From Microsoft documentation perspective - see https://docs.microsoft.com/en-us/windows/win32/msi/uninstall-registry-key
all versions uses only 3 digits, not 4.
But Microsoft never disallowed to extend their registry format.
You can create whatever keys / values in registry.
I would propose to create chocolatey official standard on registry keys.
`PackageId` would specify string tag for package id.
`PackageVersion` would specify chocolatey package version. (Which will be full 4 digits)
Using this kind of approach would obsolete the need of `chocolateyuninstall.ps1` power shell script, and would also allow choco to operate purely on registry, without need to have local chocolatey installations.
Contributor guide
Assessment
This issue has not been assessed yet.