如何在所有用户中使用UWP10安装软件包?

时间:2015-12-10 12:30:03

标签: c# uwp

我正在开发一个UWP,我需要获取系统上所有已安装软件包的列表是否有任何API?

2 个答案:

答案 0 :(得分:1)

JSFiddle是执行此操作的示例。它也适用于UWP Apps。

这些是您需要的行:

Windows.Management.Deployment.PackageManager packageManager = new Windows.Management.Deployment.PackageManager();
IEnumerable<Windows.ApplicationModel.Package> packages = (IEnumerable<Windows.ApplicationModel.Package>) packageManager.FindPackages();

然后,您可以遍历包并获取所需的信息。

现在此代码存在问题:这不能在UWP应用程序中运行(请参阅Here)。您将获得访问被拒绝的例外。现在一个选项是将此代码外包给某个组件,允许这样做并从UWP应用程序触发它。

答案 1 :(得分:0)

(会发布此评论,但我的声誉仍然很低)

以上代码对我来说不起作用。我必须在Package.appxmanifest中添加restricted capability。 必须在文件顶部添加一个新的命名空间:

xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"`

<rescap:Capability Name="packageQuery" />

到Capabilties标签。您可能需要根据this信息将“rescap”命名空间添加到“可忽略”列表中。