检测 Windows 商店是否可用
Detect if Windows Store is available
我的目标是建议用户从桌面应用程序安装应用程序的商店版本,但我需要知道用户是否可以这样做(例如它的 Windows 10+,并且商店可用).
我可以轻松检测到 Windows 10+。
问题是有很多 SKU,例如 Windows 服务器和 Windows LTSB,它们没有商店,但提供基本相同的 API。
到目前为止我尝试过的:
try
创建 Windows.Management.Deployment.PackageManager
的实例
- GetProductInfo 函数
前者在 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();
}
}
我的目标是建议用户从桌面应用程序安装应用程序的商店版本,但我需要知道用户是否可以这样做(例如它的 Windows 10+,并且商店可用).
我可以轻松检测到 Windows 10+。
问题是有很多 SKU,例如 Windows 服务器和 Windows LTSB,它们没有商店,但提供基本相同的 API。
到目前为止我尝试过的:
try
创建Windows.Management.Deployment.PackageManager
的实例
- GetProductInfo 函数
前者在 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();
}
}