为什么不能使用Brokered WinRT组件中的PackageManager类

本文关键字:PackageManager 组件 WinRT 不能 Brokered 为什么 | 更新日期: 2023-09-27 18:13:32

PackageManager类只能在全桌面应用程序中使用-它直接从WinRT应用程序使用(甚至可以获得为当前用户安装的应用程序列表(会导致UnauthorizedAccessException

我希望微软在Windows 8.1 Update 1中引入新的代理组件,可以绕过这一点,实际使用该类(现在,只能直接从桌面应用程序中使用(。

令我惊讶的是,它没有起作用,我只是又得了可怕的UnauthorizedAccessException。我认为代理组件应该在任何应用容器之外的单独过程中运行,因此,我不应该面临任何限制。我甚至试图执行一个控制台应用程序,将代理组件的PackageManager需求作为一个单独的过程来处理,但这也失败了,出现了同样的异常。

我想不出有什么方法可以为您提供一个简单的代码来复制异常——要创建一个代理组件并从WinRT应用程序中使用它,我遵循了Harry Pierson关于代理组件的系列。

有人能评论一下为什么会发生这种情况吗?

为什么不能使用Brokered WinRT组件中的PackageManager类

根据文档,此类需要管理员权限。因此,似乎WinRT和Store应用程序的沙盒太紧,即使从管理场所启动,也无法提升自己。相反,如果在admin下启动,helloworld控制台应用程序可以使用PackageManager自由操作。