修复 Windows 10 中损坏的 Appx 应用
前段时间手贱把 Surface Pro 3 的 系统升级到了 Windows Indsider Fast Ring 通道的 10525 版本,然后发现 Chrome 和 Virtual Box 都出现了兼容性问题,估计是新的内存管理机制的锅。
因为工作需要用到 Vagrant,Virtual Box 不能用简直不能忍,于是我滚回到了10240
然而没想到回滚完成后,好几个 Appx 应用都出问题了,应用名显示为 @{microsoft.windowscommunicationsapps_17.6120.42011.0_x64__8wekyb3d8bbwe}
类似这样的形式。
出问题的应用分别为 Edge、日历与邮件、应用商店、Cortana,其中 Edge 和 Cortana 只是名字没了Icon没了,商店则是变成了英文菜单,日历与邮件则是直接打开不能、更新不能、卸载不能、完全拿他没办法。
强行忍了一个多星期,实在受不了,于是昨天抽时间出来终于把这问题解决了,写下来记录下步骤 顺便给blog填点东西
首先,祭出最基本的 wsreset
大法,管理员运行,然而并没有什么卵用
试着跑了下系统自带的疑难解答
,然而它提示说……
|д゚)
好咯,还是要自己动手
既然系统搞不定,那就自己来研究吧
管理员身份打开 Powershell
,把所有包重新注册一遍
1 | Get-AppXPackage | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"} |
坐等了大概一分钟,跑完了
跑完瞬间发现,Edge恢复正常了,那写坏掉的应用名也恢复正常了!
然而还是有两个坏掉的图标……
日历与邮件还是不行_(:3」∠)_
瞄了一眼 Powershell,发现有报错
咦,C:\
在C盘根目录找是什么鬼
输出一下包信息看一下先:
1 | Get-AppxPackage microsoft.windowscommunicationsapps* |
妈了个鸡,为何 InstallLocation 不见了……
1 | cd "C:\Program Files\WindowsApps\" |
妈了个蛋,还真没了这个文件夹……
存在的文件是 42011
然而包信息里面的是 42001
好吧,估计这个就是问题所在了……
试试移除掉这个包咯
1 | Get-AppxPackage *microsoft.windowscommunicationsapps* | Remove-AppxPackage |
然而并没有用,还是读的根目录
想了想,既然只会读根目录,那我就把 42011 的 AppXManifest.xml 扔在 C: 根目录总能读到了吧?
于是把整个 42011 的所有文件复制一份扔在根目录
然后试着:
1 | Add-AppxPackage -register "C:\AppxManifest.xml" –DisableDevelopmentMode |
有反应!但是依然是报错信息,说在 C:\ProgramData\Microsoft\Windows\AppRepository
里面找不到对应的xml
那我就复制一份进去咯
1 | xcopy 'C:\AppxManifest.xml' microsoft.windowscommunicationsapps_17.6106.42001.0_x64__8wekyb3d8bbwe.xml |
再试试看!
1 | Add-AppxPackage -register "C:\AppxManifest.xml" –DisableDevelopmentMode |
nice!成功运行!
打开开始菜单看看,邮件恢复了!
为了防止出现各种奇怪的问题,先把包砍了再从商店装一遍吧
然而并不能在GUI下直接卸载,那就老方法
1 | Get-AppxPackage *microsoft.windowscommunicationsapps* | Remove-AppxPackage |
ok,卸掉
然后商店重新安装
搞定 (´・ω・`)