检测 Windows 商店是否可用

Detect if Windows Store is available

我的目标是建议用户从桌面应用程序安装应用程序的商店版本,但我需要知道用户是否可以这样做(例如它的 Windows 10+,并且商店可用).

我可以轻松检测到 Windows 10+。

问题是有很多 SKU,例如 Windows 服务器和 Windows LTSB,它们没有商店,但提供基本相同的 API。

到目前为止我尝试过的:

前者在 Windows 服务器上成功,尽管缺少商店。

后者虽然目前已经足够,但需要手动检查所有非商店 SKU,并不能真正解决问题,因为没有什么能阻止微软将 Windows 商店引入 Windows 2019 年 LTSB.

实际上,更具体地说,我想知道当前用户是否可以从 Windows Store 安装桌面桥应用程序。

您可以使用 Get-AppxPackage PowerShell 命令检查是否安装了 Microsoft.StorePurchaseApp 软件包。

首先,使用 包管理器控制台 安装 System.Management.Automation.dll NuGet 包:

PM> Install-Package System.Management.Automation.dll

然后使用这样的方法:

public static bool IsStoreAvailable()
{
    using (var shell = PowerShell.Create())
    {
        shell.AddScript("Get-AppxPackage -Name Microsoft.StorePurchaseApp");
        var result = shell.Invoke();
        return result.Any();
    }
}