chocolatey / chocolatey/choco

Installation package handling - specify proper standard for Windows install packages

Open
#2,136 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.