6

Windows 8 下载已安装应用程序的更新包,因此更新到最新包的过程更加顺畅。不幸的是,如果您卸载应用程序,它并不总是会删除这些“暂存”应用程序包。

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

这是一个问题的原因是我有一个 Surface RT,我正在使用它来开发我的 Windows 应用商店应用程序。如果系统上已经安装了“未打包”的应用程序,Visual Studio 将无法覆盖它,除非它仅安装在当前运行的用户上。不幸的是,这意味着如果我也在测试从商店接收应用程序并且有我自己的应用程序的分阶段包,那么我无法将我的应用程序部署到我的 Surface。我收到错误

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 设备中删除这些暂存包?

4

4 回答 4

8

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

对我们来说幸运的是,有一种方法可以轻松做到这一点(除非您没有本指南,否则请为麻烦的世界做好准备;)。我们将 0) 确保它确实是分阶段的应用程序包导致我们的部署失败。1) 安排任务。2)将其设置为使用系统帐户。3) 将动作设置为正确的命令。4) 确保任务能够按需运行。5) 运行任务。6)检查并查看应用程序包不再安装。

您将需要有问题的 Windows RT 设备的管理员访问权限。

0)确保分阶段的应用程序确实导致了失败。

  • 运行PowershellAdministrator. 为此,请右键单击可执行文件或在开始屏幕磁贴上向上滑动并点击Run as Administrator

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

  • 您正在寻找的是一个带有您的应用程序名称的应用程序包。像“XXXXXXX.MyApp”这样的东西。在描述底部附近寻找InstallStateto be 。也会。Staged_UserUnknown

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

1) 安排任务。

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

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

  • 为任务命名,例如“删除暂存的包”

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

  • 在选项卡中间的正下方General,在顶部Security options,单击显示 的按钮Change User or Group...。这将弹出一个对话框,供您设置任务的上下文。

  • 输入“系统”,然后单击“检查名称”。SYSTEM应加下划线并全部大写。

  • 单击确定。用户帐户现在应该说NT AUTHORITY\SYSTEM.

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

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

  • 默认操作应该是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。它以前不应该运行过。

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

  • 如果您想查看它的实际效果,请单击Display All Running Tasks。您将能够看到它当前何时运行。您可以反复单击刷新。当任务消失时,它就完成了。

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

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

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

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

于 2013-07-24T19:44:24.817 回答
2

您必须删除预配包才能清除暂存包。在提升的 PowerShell 提示符下使用以下命令(不要忘记将字符串替换为您的应用显示名称):

Get-AppxProvisionedPackage - 在线 | Where-Object DisplayName -eq 'App Name Here' | 删除-ProvisionedAppxPackage-在线

于 2018-02-01T17:49:44.470 回答
1

删除它的风险更大的方法是进入注册表并删除与您要删除的应用程序相关的密钥。我可以确认这种方式确实有效(删除后重新启动并执行了“get-appxpackage -all”并且它消失了)。

于 2013-09-27T01:22:04.307 回答
1

当 Sysprep 失败时,这对我有用。幸运的是,它位于 VM(检查点)中。

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

谢谢你。

关键词:

Microsoft.Media.PlayReadyclient Microsoft.VCLibs。

于 2016-07-21T20:31:56.683 回答