FluentStore icon indicating copy to clipboard operation
FluentStore copied to clipboard

Prefer Winget over MS Store (and make sure Winget app availability is displayed properly)

Open e-t-l opened this issue 2 years ago • 5 comments

Before you start...

  • [X] Have you checked if similar request have already been reported?

Description

There are two related problems, which I can split into separate issues if you prefer. One is directly fixable, the other is work-aroundable.

  1. For many apps, Fluent Store shows only that they are available on Microsoft Store, even though manually running winget search <appname> in CMD reveals that it is available on Winget! I don't know how Fluent Store parses source availability, but this could definitely be improved.
  2. Microsoft Store is increasingly requiring Microsoft account sign-in to install apps, even free ones. This is a problem for Windows users who sign in with a Local account, not a Microsoft account, or who otherwise do not have a MS account linked to the MS Store app (e.g. not signing into MS apps is a common privacy recommendation.)

If problem No. 1 can be solved, then the simple workaround to problem No. 2 is that if an app fails to download from the MS Store, to try downloading it with Winget instead.

Alternative solutions

Users manually querying and installing the app name with winget in a CMD terminal. This is what I'm currently doing.

Relevant Assets

No response

e-t-l avatar Nov 02 '23 04:11 e-t-l

Howdy! Can you verify that the Winget plugin is loaded? It should be in the plugin list in settings. Are you able to search for and install other packages that are only available from Winget?

I doubt there is anything I can do to solve your second point. I would like to support MSA login, but it's impossible (possibly forever).

Also, regarding falling back to WinGet if MS Store fails: I can't do that either. Fluent Store has no way of knowing which packages from different sources are the same and should be merged. Even if the same app was available in both places, for example Paint.NET, one might be free and the other paid. Or one might be a Win32 webview, the other a PWA. The best feature I can provide to help with this is to show all packages from all sources in the search results, which Fluent Store already does.

yoshiask avatar Nov 02 '23 19:11 yoshiask

The Winstall plugin is loaded, if that's the same thing.

When I suggested that Fluent Store prioritize winget as a source, I meant as an installation method. The source can still be MS Store. Let me give you an example of what I mean by packages from different sources.

The Terminal Preview app cannot be installed from the MS Store app without MSA login. Searching "terminal preview" in the Fluent Store shows: "Provided by Microsoft Store" as the only source.

Running Winget search "terminal preview" returns:

Name                     Id                                Version     Source
-------------------------------------------------------------------------------
Windows Terminal Preview 9N8G5RFZ9XK3                      Unknown     msstore
Windows Terminal Preview Microsoft.WindowsTerminal.Preview 1.19.2831.0 winget

And even though there has been no MSA authentication, you can run winget install 9N8G5RFZ9XK3 --force and the Winget installation method will successfully install the app from the msstore source. (note: the --force flag seems to be necessary here.)

e-t-l avatar Nov 02 '23 20:11 e-t-l

I see what you mean. The purpose of the Install plugin is to allow installation of packages that are in the Winget Community Repository— no other Winget source is supported. I am still researching ways to accomplish full Winget support, but it requires a completely different approach than the Winstall plugin currently uses.

That being said, it isn't necessary for what you want to do, Fluent Store is already doing what the Winget CLI is. In fact, Fluent Store even lets you download and install packages for paid MS Store apps you don't own (though Windows won't let you run them without a license).

yoshiask avatar Nov 04 '23 13:11 yoshiask

Fluent Store is already doing what the Winget CLI is

By this, I assume you mean that when Fluent Store installs an app provided by MS Store, it does so by running winget install 9N8G5RFZ9XK3 (to use the example in my last comment)? In that case, I think it would be helpful to include the --force flag by default, as I'm currently seeing Fluent store frequently fail to download MS Store apps.

e-t-l avatar Nov 04 '23 14:11 e-t-l

Fluent Store doesn't actually use the Winget CLI at all, for backward compatibility with systems that don't have Winget and so FS doesn't break every time the Winget CLI updates. For pretty much all package sources (including both MS Store and Winstall), FS just downloads the installer and either uses built-in Windows features for packages apps (MSIX) or simply runs the installer in silent mode if possible (MSI, EXE).

If you're having issues installing MS Store apps, I would greatly appreciate it if you filed a bug report including the installation error.

yoshiask avatar Nov 05 '23 20:11 yoshiask