我正在开发一个UWP,我需要获取系统上所有已安装软件包的列表是否有任何API?
答案 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”命名空间添加到“可忽略”列表中。