-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Winget incorrectly detects per-user MSI scope (No applicable update found
)
#3011
Comments
Its telling you that no applicable update is found because the installer types and scopes are not compatible with each other. Upgrades are only supported if the scopes match and the installers are directly compatible with each other iirc. |
Yes, but in this case it should match. Winget is saying that the installer is in the |
MSIs by default install in machine scope IIRC. To have them install in user scope, you would have to provide additional InstallerSwitches Ref: MSIINTALLPERSUSER Property You could see these switches are added to separate the two scopes in the manifest for Microsoft.RemoteDesktopClient But not all MSI installers (the one that comes at the top of my head is Microsoft.PowerShell) support per-user installation. So, I guess it's a matter of testing whether an MSI installer supports per-user installation, and if does you would need to add the necessary InstallerSwitches in the manifest. |
The packages mentioned above are user-scoped only. See also russellbanks/Komac#103 (comment):
|
I ran into this issue last year when adding WinGet determines a per-user install vs machine-wide install based on where the registry entries are placed instead of the where the application is installed to. Some installers will install in per-user but have its registry entries in HKLM and some installers will install in per-machine but have its registry entries in HKCU. This is because the installer places its registry entries in the wrong place. Komac does a per-user install but places all of its registry entries in HKLM (which is meant for machine-wide installs) so WinGet will immediately think that Komac is a machine-wide install because of this. Komac will need to place registry entries in HKCU to be considered a per-user install to WinGet. |
Can you point to me a per-user only MSI installer that properly places the registry in the |
|
I invoke jPackager from the JDK for this, which uses Wix for exe's and msi's. I use |
Or it's by design: https://stackoverflow.com/questions/32273217/how-and-why-installation-per-user-manages-to-write-to-hklm. Winget should have some sort of special detection for this one. |
I don't think I remember seeing one when I installed more than 3000+ applications from WinGet into a Microsoft Azure VM. If it's a WIX bug then it's best to file an issue over at their repository to check if it's intentional or not. Developers of WIX are also in the process of rewriting its entire project (https://github.com/wixtoolset/wix4) which is currently in alpha so there might be a possibility that it might be fixed over there. Though I will say that this issue seems a lot more common on EXE installers than MSI installers since there are more than 100+ packages that are affected by this issue. Some examples are:
This could probably be solved if WinGet had support for |
No applicable update found
)No applicable update found
)
@robmen Sorry for the ping, but can we get your advice from here? Does Windows Installer really write to Honeygain seems to be already deleted from winget-pkgs (microsoft/winget-pkgs#60711) Nullsoft installers can be fixed: The issue at hand here is about MSI installers. |
Windows Installer doesn't document its use of the registry. Use the MSI APIs, like MsiGetProductInfoExW. |
Brief description of your issue
I cannot upgrade packages whose MSI installers are under user scope. A
No applicable update found
is shown despite it showing to be available from thewinget upgrade
command.Here are some examples of packages with this issue:
Steps to reproduce
RussellBanks.Komac
.winget upgrade
. Komac should show up.winget upgrade RussellBanks.Komac
)No applicable upgrade found.
message.Log:
Expected behavior
It should successfuly start to upgrade the package.
Actual behavior
A
No applicable upgrade found.
message is shown despite an upgrade being available.Environment
The text was updated successfully, but these errors were encountered: