如何在我的Surface RT上卸载Staged App Package?

Windows 8下载已安装的应用程序的更新包,以便更新到最新的软件包是一个更顺利的过程。 不幸的是,如果你卸载一个应用程序,它并不总是删除这些“Staged”应用程序包。

最重要的是,您无法访问它们,因为它们是由其他用户安装的。 你甚至不能从Powershell中调用“Remove-AppxPackage”来删除它们。

这是一个问题的原因是我有一个Surface RT,我正在使用开发我的Windowsapp store。 如果系统上已经安装了“unpackaged”应用程序,Visual Studio将无法覆盖它,除非只安装在当前正在运行的用户上。 这不幸意味着,如果我也testing从商店接收应用程序,并有我自己的应用程序的上演包,那么我无法将我的应用程序部署到我的表面。 我得到错误

Error : DEP0700 : Registration of the app failed. Another user has already installed a packaged version of this app. An unpackaged version cannot replace this. The conflicting package is [MyProjectName] and it was published by [MyCertificate]. (0x80073cf9) 

我如何从Windows RT设备中删除这些分步软件包?

正如之前提出的问题所述 ,有几种方法可以做到这一点。 关键是您必须System身份运行Remove-AppxPackage Powershell cmdlet 。 Sysinternals有一个工具,可以让你做到这一点, psexec 。 不幸的是,它不是为ARM编译的,也不能在Surface RT(或任何ARM设备)上运行。 除此之外,以System帐户运行命令本身也很难。

幸运的是,有一种方法可以做到这一点,没有太多的麻烦(除非你没有这个指南,然后准备一个麻烦的世界)。 我们将要0)确保它确实是Staged应用程序包导致我们的部署失败。 1)安排任务。 2)将其设置为使用系统帐户。 3)将Action设置为正确的命令。 4)确保任务能够按需运行。 5)运行任务。 6)检查并看到应用程序包不再安装。

您将需要在有问题的Windows RT设备上进行管理员访问。

0)确保上演的应用程序确实导致失败。

  • Administrator身份运行Powershell 。 要执行此操作,请右键单击可执行文件或在“开始屏幕”图块上向上滑动,然后点击Run as Administrator

  • 运行命令“Get-AppxPackage -all”。 这将需要一秒钟,然后显示所有用户的所有安装的应用程序包。

  • 你正在寻找的是一个应用程序包与您的应用程序的名称。 像“XXXXXXX.MyApp”。 在描述的底部附近查找要Staged执行的InstallStateUser也将是Unknown

  • 如果当前没有安装您的应用程序版本,则不是您的问题。

1)安排一项任务。

  • 在开始屏幕上,打开“计划任务”。 我相信你也可以通过管理工具来获得它。 您还应该确保任务计划程序服务当前正在运行。

  • 在右侧,点击/点击“创建任务…”

  • 为该任务提供一个快速名称,例如“删除分段包”

2)将其设置为使用系统帐户

  • 在“ General选项卡中间的“ Security options ”顶部,单击“ Change User or Group... ”按钮。 这将为您提供一个对话框来设置任务的上下文。

  • 输入“系统”,然后点击“检查姓名”。 SYSTEM应加下划线,全部在大写字母上。

  • 点击OK。 用户帐户现在应该说NT AUTHORITY\SYSTEM

3)将Action设置为正确的命令。

  • 转到顶部的操作选项卡。 点击“新建”。

  • 默认的操作应该是Start a program 。 这是对的。

  • 单击Browse...按钮并导航到C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

  • Add Arguments (optional):字段中,输入: -c "get-appxpackage | remove-appxpackage" ,包括所有引号。 | 字符是“管道”字符。 应该是SHFT+\ (Shift和反斜杠,就在Enter之上)。

  • 点击OK

4)确保任务能够按需运行。

  • 在“ Conditions选项卡中,取消选中Start the task only if the computer is on AC power. 这不是真的有必要,但不是一个烦恼。

  • 在“ Settings选项卡中,确保“ Allow task to be run on demand被选中。 它应该是默认情况下,但确定是很好的。

  • 点击底部的OK

5)运行任务。

  • 在左侧窗格中,单击Task Scheduler Library 。 这将更新中心窗格以包含我们的新任务。

  • 确保StatusReady 。 它应该从来没有运行过。

  • 点击列表中的任务。 在Selected Item下的右侧“ Actions窗格中,单击Run

  • 如果您想要查看它,请单击“ Display All Running Tasks 。 您将能够看到它当前正在运行。 您可以重复点击刷新。 任务消失后,就完成了。

  • 单击右窗格中“ Task Scheduler Library部分的“刷新”。 该任务应该有一个Last Run TimeLast Run Result应该是The operation completed successfully. (0x0) The operation completed successfully. (0x0)

6)检查并看到应用程序包不再安装。

  • 基本上,重复步骤0) 。 以Administrator身份运行Powershell 。 运行命令Get-AppxPackage -all 。 检查并看看Staged软件包是否仍然安装。 他们不应该。

你现在完成了! 您应该能够将您的应用程序包部署到您的Windows RT设备。

删除它的更有风险的方法是进入注册表并删除与您要删除的应用程序有关的键。 我可以确认,这种方式确实工作(删除后重新启动,并做了“get-appxpackage -all”,它已经没有了)。

这在Sysprep失败时适用于我。 幸运的是它在虚拟机(检查点)。

我也跑了[get-appxpackage | 运行上述任务后,从PowerShell本身执行remove-appxpackage]。

谢谢。

关键词:

Microsoft.Media.PlayReadyclient Microsoft.VCLibs。