代码之家  ›  专栏  ›  技术社区  ›  LOST

检测Windows应用商店是否可用

  •  5
  • LOST  · 技术社区  · 7 年前

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

    我可以很容易地检测到Windows 10+。

    问题是,有许多sku,如Windows Server和Windows LTSB,它们没有存储,但提供了本质上相同的api。

    到目前为止我所做的:

    • try 创建的实例 Windows.Management.Deployment.PackageManager
    • 这个 GetProductInfo 功能

    前者在Windows服务器上获得了成功,尽管没有商店。

    后者虽然目前已经足够应付今天的需求,但需要手动检查所有非商店SKU,并不能真正解决问题,因为没有任何东西阻止微软将Windows Store引入Windows 2019 LTSB。

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

    1 回复  |  直到 7 年前
        1
  •  4
  •   huysentruitw Marc Gravell    7 年前

    你可以用 Get-AppxPackage PowerShell命令检查 Microsoft.StorePurchaseApp 包是否已安装。

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

    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();
        }
    }