我在 9 月份购买了 Forza Motorsport 7 的预购版。在安装预购版时,出现了一个错误,导致安装基本完成。Forza Motorsport 通过 Windows Store 提供,并通过 Appx App Packager 分发。
现在 Forza Motorsport 7 已经“全面上市”,我想安装完整版游戏。通常,当您运行预购“存根”应用程序时,会自动安装完整版游戏,但由于初始安装过程中出现问题,无法下载完整版游戏。
我的第一个想法是做一个简单的“卸载并重新安装”,但是尝试使用设置中的“应用程序和功能”页面卸载该应用程序会导致此错误:
我们无法卸载 Forza Motorsport 7。
操作未成功完成。请稍后重试。
错误代码为 0x8000000e,以防您需要它。
没有帮助。接下来我使用Get-AppxPackage *Apollo*
(Apollo 是这款游戏的代号)通过 PowerShell 获取游戏的 Appx 包名称,然后用它Remove-AppxPackage "Microsoft.ApolloBaseGame_1.0.2.2_64__xwekyb3d8bbwe"
来卸载应用程序。这不起作用,出现以下错误:
PS C:\WINDOWS\system32> Remove-AppxPackage Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe
Remove-AppxPackage : 部署失败,HRESULT: 0x80073CFA,删除失败。请联系您的软件供应商。
部署删除操作在目标卷 E: 上失败,错误为 0x80070002。请参阅http://go.microsoft.com/fwlink/?LinkId=235160以获取有关诊断应用部署问题的帮助。
注意:有关其他信息,请在事件日志中查找 [ActivityId] 59ff267b-3c76-0002-2d54-ff59763cd301 或使用命令行 Get-AppxLog -ActivityID 59ff267b-3c76-0002-2d54-ff59763cd301
At line:1 char:1
+ Remove-AppxPackage Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbw ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (Microsoft.Apoll...__8wekyb3d8bbwe:String) [Remove-AppxPackage], IOException
+ FullyQualifiedErrorId :部署错误,Microsoft.Windows.Appx.PackageManager.Commands.RemoveAppxPackageCommand
根据上面输出的建议,我运行了 Get-Appxlog 来查看实际错误:
注意:C:\WINDOWS\system32> Get-AppxLog -ActivityID 59ff267b-3c76-0002-2d54-ff59763cd301 时间ID消息 ---- -- ------- 2017-10-03 2:43:13 PM 603 已开始部署对具有主要参数的包的删除操作:Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe 和选项:0。请参阅 http://go.microsoft.com/fwlink/?LinkId=235160 以获取有关诊断应用程序的帮助 部署问题。 2017-10-03 2:43:13 PM 10002 创建弹性文件 C:\ProgramData\Microsoft\Windows\AppRepository\b5d59b38-d0ce-4730-a93c-da39a1a1d34e_S-1-5-21-2808904017-3304153599-3912926511-1001_2.rslc 用于程序包上的删除操作 Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe。 2017-10-03 2:43:13 PM 607 部署对程序包 Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe 的删除操作已出队并正在为用户 SID S-1-5-21-2808904017-3304153599-3912926511-1001 运行。 2017-10-03 2:43:13 PM 605 上次成功达到的状态是 BundleProcessed。在达到下一个状态 Indexed 之前发生故障。hr: 0x80070002 2017-10-03 2:43:13 PM 401 部署删除操作,目标卷 E: 位于软件包 Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe 上,来自:失败,错误 0x80070002。请参阅 http://go.microsoft.com/fwlink/?LinkId=235160 获取帮助 诊断应用程序部署问题。 2017-10-03 2:43:13 PM 404 AppX 部署操作因软件包 Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe 而失败,错误为 0x80073CFA。此失败的具体错误文本为:部署删除操作,目标卷 E: 已打开 软件包 Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe 来自:失败,错误 0x80070002。请参阅 http://go.microsoft.com/fwlink/?LinkId=235160 以获取有关诊断应用部署问题的帮助。
Error: 0x80070002
似乎表示“文件未找到”错误。尽管消息没有显示未找到哪个文件。非常有帮助。
接下来,我尝试使用DISM.exe
该包删除:
C:\WINDOWS\system32>C:\Windows\system32\Dism.exe /online /remove-provisionedappxpackage /packagename:Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe 部署映像服务和管理工具 版本:10.0.15063.0 图像版本:10.0.15063.0 错误:2 该系统找不到指定的文件。 DISM 日志文件位于 C:\WINDOWS\Logs\DISM\dism.log
DISM日志文件中的相关内容:
2017-10-03 14:57:36,信息 DISM DISM Appx 提供程序:PID=8912 TID=10092 处理索引 2 处的“packagename”选项 - CAppxManager::ProcessCommandRemoveAllUserAppx 2017-10-03 14:57:36,信息 DISM DISM Appx 提供程序:PID=8912 TID=10092 包名称='Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe' - CAppxManager::ProcessCommandRemoveAllUserAppx 2017-10-03 14:57:36,错误 DISM DISM Appx 提供程序:PID=8912 TID=10092 无法打开“C:\Program Files\WindowsApps\Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe\AppxMetadata\AppxBundleManifest.xml”。- CPackageAdapter::GetOptionalPackagesForMainPackage(hr:0x80070002) 2017-10-03 14:57:36,警告 DISM DISM Appx 提供程序:PID=8912 TID=10092 获取“Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe”的可选包列表时遇到错误 0x80070002 - CAppxManager::RemoveAllUserAppx 2017-10-03 14:57:36,错误 DISM DISM Appx 提供程序:PID=8912 TID=10092 无法获取要删除的包列表 - CPackageAdapter::DeregisterMainPackageAndGetDependencyPackages(hr:0x80070002) 2017-10-03 14:57:36,错误 DISM DISM Appx 提供程序:PID=8912 TID=10092 无法取消注册主包并获取其依赖包 - CPackageAdapter::DeregisterPackageOnline(hr:0x80070002) 2017-10-03 14:57:36,错误 DISM DISM Appx 提供程序:PID=8912 TID=10092 无法取消注册包。- CPackageAdapter::RemovePackageOnline(hr:0x80070002) 2017-10-03 14:57:36,错误 DISM DISM Appx 提供程序:PID=8912 TID=10092 删除包 Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe 时遇到失败 - CAppxManager::RemoveAllUserAppx(hr:0x80070002) 2017-10-03 14:57:36,错误 DISM DISM Appx 提供程序:PID=8912 TID=10092 无法删除包“Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe”- CAppxManager::ProcessCommandRemoveAllUserAppx(hr:0x80070002) 2017-10-03 14:57:36,错误 DISM DISM Appx 提供程序:PID=8912 TID=10092 无法处理删除 Appx 包的命令 - CAppxManager::ExecuteCmdLine(hr:0x80070002)
使用命令行,我可以验证C:\Program Files\WindowsApps\Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe\AppxMetadata\AppxBundleManifest.xml
不存在。但是,我无法创建文件,也无法将文件复制到该位置。即使我cmd.exe
以系统身份运行,也可以通过PsExec
:
psexec -e -i -h -s cmd.exe
有没有办法手动删除无法卸载的 Appx 包?或者,有没有办法手动触发 appx 的重新安装?
我可以从 Windows PE 环境启动并创建一个假AppxBundleManifest.xml
文件,但我觉得假的 xml 清单可能会让事情变得更糟。据推测,该清单文件通常包含卸载过程所需的依赖项信息。
我是否必须format C:
重新安装?真的吗?
答案1
我能解决这个问题的唯一方法是彻底重新安装 Windows。我认为微软应该创建一种强制重新安装应用程序的方法。
答案2
删除损坏的应用程序的一种方法可能是先更新它。
如果您在线,则可以使用 Microsoft 商店;如果您断开连接,则可以使用 Appx 包。
获取软件包系列名称
get-appxpackage | ft -autosize name,version,PackageFullName,packagefamilyname
或者从商店页面获取 URL:https://apps.microsoft.com/detail/9n0dx20hk701?hl=en-us&gl=US
将包名称带到https://store.rg-adguard.net/并下载相关的 appx/msixbundle/appxbundle 文件。您需要先安装依赖项,然后再安装应用程序:
get-childitem -filter *.appx | add-appxpackage
get-childitem -filter *.msix | add-appxpackage
get-childitem -filter *.appxbundle | add-appxpackage
get-childitem -filter *.msixbundle | add-appxpackage
更新软件包后,您可能能够正确地卸载它:
get-appxpackage -allusers *name* | remove-appxpackage -allusers
get-appxpackage -allusers *name* | remove-appxpackage
将 -online 参数添加到 remove-appxpackage 也可能有帮助。这有点随机,祝你好运。
答案3
Stephen Rauch 表示
Get-AppxPackage *Apollo* | Remove-AppPackage
这个命令帮助了我。
有趣的是,我在收到以下错误后立即尝试了此命令,并且似乎成功了。我想知道通过管道发送有什么不同?
Remove-AppPackage : Removal failed. Please
contact your software vendor.
Deployment Remove operation with target volume
C: on Package Microsoft.GetHelp_10.2201.421.0_x64__8wekyb3d8bbwe
from: failed with error 0x80070002
答案4
无需重新安装 Windows 10,我遇到了同样的问题,不同之处在于我的所有游戏都安装在外部 HD 上的另一个 HD 中,这样,只需断开 HD 重新启动 Windows,单击按钮运行游戏,它就会出现一条重新安装的消息,只需再次连接 HD 并重新安装游戏即可。