-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[Package Issue]: Microsoft.PowerShell #94861
Comments
Update for my Note: I am using this workaround: |
Can you please provide your log files? I'm guessing that they will contain more detail, probably something along the lines of:
Have you tried using it without This may be related to microsoft/winget-cli#2855 Edit: @yao-msft - Verified this is the case using sandbox |
without |
|
I mean |
I found the problem. |
I don't think that's accurate. MSI shouldn't need the scope set, since it can be installed in either. It seems the issue is that it is selecting the MSIX for you instead of the MSI. Even looking at version 7.0.0.0, there isn't a specified scope for the MSI installers. |
Okay I see that you are right. I continue to search. |
It happens after version 7.0.13.0 . Any ideas? |
I tried this:
|
Interesting. I'm not sure what would be causing the discrepancy |
It is late at my location and I am sleepy, so I will take a look at that at tomorrow. |
And at version 7.3.1.0 there is a scope=user usage. watch out... |
I had a quick chat with @SteveL-MSFT. The Microsoft Store serves the MSIX package, and the community repository serves the MSI (except ARM64). This is intentional as a way to expose both installer types. We still have work to do on the WinGet side to give the ability to specify the installer type. That would enable both to be in a manifest, and a user could select the one they prefer. We could also expose settings for the order of precedence for installer types. It looks like there have been a few modifications of manifests by the community changing some of the "intended" behavior. We don't expect it was due to any ill will. Mentioning @russellbanks for the most recent modification. |
The Powershell MSIXBundle contains installers for x64, x86, arm, and arm64. My change added entries for all of those as before it meant that only arm and arm64 users were able to make use of the MSIX despite it working just fine on x64 and x86. I apologise if this caused issues though as it probably meant it defaulted to using MSIX over the MSI. It's been clarified in #93510 (comment) that winget will only use the MSI for Powershell so it should be fixed now. |
@russellbanks, no worries. We're working on the "verified developer" feature to help prevent unintended changes in the future. We just didn't catch this one. I think this also calls out a need for a way to have some notes associated with packages to help clarify the "intended" behavior. This one was a bit tricky to reason about and wasn't obvious for an external party. You were just trying to be helpful. 😊 |
This comment was marked as off-topic.
This comment was marked as off-topic.
now, it works for latest version. that's great. but for version 7.1.0.0 I got error for scope=machine. Not a problem while we only have msi installers. But still, some versions doesn't support scope parameter. |
We found a couple of scope related bugs for MSIX and portable packages. They've been assigned to an engineer to fix: |
For msi installers, I guess scope=machine can be a default, because all msi installers do a machine install. isn't that right? |
MSI's can install in either user or machine. The MSI database specifies an ALLUSERS property, which can either be "1" (per-machine), "" (per-user), or "2" (the scope changes based on the user's privileges and the version of Windows). |
Please confirm these before moving forward
Category of the issue
Installation issue.
Brief description of your issue
I tried to install it on machine scope, but it says that "The current system configuration does not support the installation of this package.". I used this code to install it:
winget install --id=Microsoft.Powershell --source=winget --scope=machine
.Steps to reproduce
I used this code to install powershell core:
winget install --id=Microsoft.Powershell --source=winget --scope=machine
.Actual behavior
Gives error: "The current system configuration does not support the installation of this package."
Expected behavior
Install the msi package (on machine scope).
(Note: I am using this workaround:
winget install --id=Microsoft.Powershell --source=winget --scope=machine --version=6.0.0.0
andwinget upgrade --id=Microsoft.Powershell --source=winget
. However, this should not be necessary.)Environment
Screenshots and Logs
No response
The text was updated successfully, but these errors were encountered: