当我在笔记本电脑上安装 Windows 10(LTSC 2021,版本 21H2)时,有一个内置包 MicrosoftWindows.Client.CBS,它依赖于 Microsoft.VCLibs.140.00 包。然而,微软犯了一个错误,没有包括它,导致一些功能,如通知区域中的“屏幕截图”按钮不起作用,wsappx 进程的 CPU 使用率持续很高。这可以通过手动安装包来修复,我当时就是这么做的,问题就解决了。
后来,我不得不安装另一个随 Microsoft.VCLibs.140.00 软件包的新版本附带的应用程序,所以现在我的系统上安装了两个应用程序。由于旧版本实际上没有任何存在的理由,我尝试将其删除,但我遇到了一条错误消息:
Remove-AppPackage : Deployment failed with HRESULT: 0x80073CF3, Package failed updates, dependency or conflict validation.
Windows cannot remove framework Microsoft.VCLibs.140.00_14.0.30704.0_x64__8wekyb3d8bbwe because package(s) MicrosoftWindows.Client.CBS currently depends on the framework.
Removing all packages that depend on the framework automatically removes the framework.
NOTE: For additional information, look for [ActivityId] 7664d75f-2888-0002-f4dc-64768828da01 in the Event Log or use the command line Get-AppPackageLog -ActivityID
7664d75f-2888-0002-f4dc-64768828da01
At line:1 char:1
+ Remove-AppPackage Microsoft.VCLibs.140.00_14.0.30704.0_x64__8wekyb3d8 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (Microsoft.VCLib...__8wekyb3d8bbwe:String) [Remove-AppxPackage], IOException
+ FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.RemoveAppxPackageCommand
检查后发现,MicrosoftWindows.Client.CBS 包将 Microsoft.VCLibs.140.00 的两个版本都列为其依赖项:
Name : MicrosoftWindows.Client.CBS
Publisher : CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture : X64
ResourceId :
Version : 120.2212.3920.0
PackageFullName : MicrosoftWindows.Client.CBS_120.2212.3920.0_x64__cw5n1h2txyewy
InstallLocation : C:\Windows\SystemApps\MicrosoftWindows.Client.CBS_cw5n1h2txyewy
IsFramework : False
PackageFamilyName : MicrosoftWindows.Client.CBS_cw5n1h2txyewy
PublisherId : cw5n1h2txyewy
IsResourcePackage : False
IsBundle : False
IsDevelopmentMode : False
NonRemovable : True
Dependencies : {Microsoft.VCLibs.140.00_14.0.30704.0_x64__8wekyb3d8bbwe, Microsoft.VCLibs.140.00_14.0.32530.0_x64__8wekyb3d8bbwe}
IsPartiallyStaged : False
SignatureKind : System
Status : Ok
因此,我尝试删除任一版本的软件包都会失败并显示相同的错误消息,重新启动系统也无法改变这种情况。我怎样才能删除旧版本并只保留最新版本?我在全新安装的虚拟机中检查发现,MicrosoftWindows.Client.CBS 软件包在仅安装最新版本 (32530) 的情况下运行良好。
答案1
虽然我没有找到直接删除这两个包中的任何一个的方法,但我设法得到了预期的结果:系统中只有一个 Microsoft.VCLibs.140.00 包,并且 MicrosoftWindows.Client.CBS 可以与已安装的版本一起使用。
Add-AppxPackage
我所做的是使用开关再次安装该软件包-ForceUpdateFromAnyVersion -ForceApplicationShutdown
:
Add-AppxPackage .\Microsoft.VCLibs.140.00_14.0.32530.0_x64__8wekyb3d8bbwe.Appx -ForceUpdateFromAnyVersion -ForceApplicationShutdown
结果:
Name : MicrosoftWindows.Client.CBS
Publisher : CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture : X64
ResourceId :
Version : 120.2212.3920.0
PackageFullName : MicrosoftWindows.Client.CBS_120.2212.3920.0_x64__cw5n1h2txyewy
InstallLocation : C:\Windows\SystemApps\MicrosoftWindows.Client.CBS_cw5n1h2txyewy
IsFramework : False
PackageFamilyName : MicrosoftWindows.Client.CBS_cw5n1h2txyewy
PublisherId : cw5n1h2txyewy
IsResourcePackage : False
IsBundle : False
IsDevelopmentMode : False
NonRemovable : True
Dependencies : {Microsoft.VCLibs.140.00_14.0.32530.0_x64__8wekyb3d8bbwe}
IsPartiallyStaged : False
SignatureKind : System
Status : Ok