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

Nat*_*ond 4 windows powershell windows-8 windows-runtime windows-store-apps

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)
Run Code Online (Sandbox Code Playgroud)

如何从Windows RT设备中删除这些Staged Packages?

Nat*_*ond 6

前面提到的问题所述,有几种方法可以做到.关键是你必须运行Remove-AppxPackagePowershell cmdlet作为System.Sysinternals有一个允许你这样做的工具psexec.不幸的是,它不是为ARM编译的,不能在Surface RT(或任何ARM设备)上运行.除此之外,以System系统帐户运行命令本身也很困难.

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

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

0)确保暂存的应用程序确实导致失败.

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

  • 运行命令"Get-AppxPackage -all".这将花费一秒钟,然后显示所有用户的所有已安装的应用程序包.

  • 您正在寻找的是一个应用程序包,其中包含您的应用程序的名称.像"XXXXXXX.MyApp"之类的东西.寻找的InstallStateStaged,附近的描述的底部.该User也将Unknown.

  • 如果您当前没有安装任何版本的应用,那么这不是您的问题.

1)安排任务.

  • 在"开始"屏幕上,打开"计划任务".我相信你也可以通过管理工具来实现它.您还应确保Task Scheduler服务当前正在运行.

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

  • 为该任务提供快速名称,例如"删除暂存的包"

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

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

  • 键入"系统",然后单击"检查名称".SYSTEM应加下划线并全部加盖.

  • 单击确定.用户帐户现在应该说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)确保Task能够按需运行.

  • 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设备.