安装vc_redist.x64.exe时,出现错误"Failed to configure per-machine MSU package."

23

我正在尝试在Windows 8.1上安装vc_redist.x64.exe,但出现以下错误:

配置计算机级MSU包失败。


请尝试从微软下载vc_redist“UPDATE 3”软件包。这对我有用。 - Abbas
6个回答

56

我在这里回答自己的问题,因为我在这里找到了答案,但它被隐藏在底部:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/64baed8c-b00c-40d5-b19a-99b26a11516e/visual-c-redistributable-for-visual-studio-2015-rc-fails-on-windows-server-2012?forum=vssetup

这是因为操作系统未能安装所需的更新Windows8.1-KB2999226-x64.msu。

但是,您可以通过将该更新提取到一个文件夹(例如XXXX)中,并执行以下命令来安装它。您可以在下面找到Windows8.1-KB2999226-x64.msu。

C:\ProgramData\Package Cache\469A82B09E217DDCF849181A586DF1C97C0C5C85\packages\Patch\amd64\Windows8.1-KB2999226-x64.msu

将此文件复制到您喜欢的文件夹中,然后

在该文件夹中创建名为XXXX的文件夹,然后从管理员命令提示符中执行以下命令

wusa.exe Windows8.1-KB2999226-x64.msu /extract:XXXX

DISM.exe /Online /Add-Package /PackagePath:XXXX\Windows8.1-KB2999226-x64.cab

vc_redist.x64.exe /repair

(最后一个命令不需要运行。只需再次执行vc_redist.x64.exe即可)

这对我有用。


2
谢谢。这个方法对我有效。然而,.msu文件的路径有所不同。我在安装刚发布的VS 2015时遇到了此问题。如果你也遇到了此问题,请等待直到安装失败,然后前往安装日志并查找软件包的实际位置。在我的环境中,它是“C:\ProgramData\Package Cache\FC6260C33678BB17FB8B88536C476B4015B7C5E9\packages\Patch\x64\Windows8.1-KB2999226-x64.msu”。 - Pavel
1
在安装Visual Studio 2015时,我一直收到“KB2999226 - 访问被拒绝”的错误提示。按照上述步骤操作,只是参考了Windows 6.1 msu文件[适用于Windows 7]。成功了! - Rob Koch
1
我收到了错误87 "add-package选项未知"。使用命令DISM.EXE /?时,在DISM OPTIONS列表中没有add-package选项。我的系统是Windows 8.1专业版,在安装VS 2015专业版时出现了KB2999226失败的错误。 - Shenwei
3
如果你遇到了错误87 "未知的add-package选项",原因可能是"Windows模块安装程序"服务没有运行。 - Cito
1
可能是由于未满足先决条件,导致KB2999226的安装失败。手动提取和安装补丁可能不是一个好主意。我已经用另一种方式解决了这个问题,详见我的答案https://dev59.com/qFwZ5IYBdhLWcg3wYfVu#35567962。 - VCD
显示剩余4条评论

16

我想为您介绍通用CRT的背景,这将帮助您理解为什么在安装vc_redist.x64.exe之前应该更新系统。

  1. C运行时库的大部分已经移动到Windows 10操作系统中(ucrtbase.dll),并像其他任何操作系统DLL(例如kernel32.dll)一样接受服务。它不再直接由Visual Studio提供服务。 MSU包是Windows更新的文件类型。
  2. 为了将Windows 10 Universal CRT传递到较早的操作系统版本,创建了Windows更新包以将此操作系统组件降级。KB2999226将Windows 10 RTM Universal CRT带到较低版本的平台(从Windows Vista到Windows 8.1)。KB3118401将Windows 10 November更新带到Universal CRT下级平台。
    • 这里的一个例外是Windows XP(最新SP)。 Windows Servicing没有为该操作系统提供下级包,因此Visual Studio(Visual C ++)提供了一种通过VCRedist和MSMs将UCRT安装到System32中的机制。
  3. Windows通用运行时库包含在VC Redist exe包中,因为它依赖于Windows通用运行时库(KB2999226)。
  4. Windows 10是唯一在盒子内提供UCRT的操作系统。 所有先前的操作系统仅通过Windows Update获取UCRT。 这适用于所有Vista-> 8.1以及相关的Server SKUs。

对于Windows 7、8和8.1,必须通过KB2999226安装Windows通用运行时库。但是它有一个前提更新KB2919355,其中包含便于安装KB2999226包的更新。

为什么在从可再发行软件包中安装运行时库时,KB2999226并不总是安装? 什么可能会阻止KB2999226作为运行时的一部分安装?

VCRedist中包含的UCRT MSU通过调用Windows Update服务安装,KB可能无法安装基于Windows Update服务的活动/状态:

  1. 如果机器尚未更新到所需的服务基线,则UCRT MSU将被视为“不适用”。 确保已安装KB2919355。 此外,KB2919355存在已知问题,因此在此之前应安装以下热修复程序。 KB2939087 KB2975061
  2. 如果Windows Update服务在VCRedist安装时安装其他更新,则可能会出现长时间延迟或错误,指示机器正忙。
    • 这可以通过等待一段时间后重试来解决(这可能是为什么稍后通过Windows Update UI安装成功的原因)。
  3. 如果Windows Update服务处于非就绪状态,则可以看到反映该状态的错误。
    • 我们最近调查了一个失败,错误代码表明WUSA服务正在关闭。
  4. 要识别是否安装了前提条件KB2919355,有两个选项:

    1. 注册表键: 64位hive

      HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Package_for_KB2919355~31bf3856ad364e35~amd64~~6.3.1.14
      CurrentState = 112
      

      32位注册表

      HKLM\SOFTWARE\[WOW6432Node\]Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Package_for_KB2919355~31bf3856ad364e35~x86~~6.3.1.14
      CurrentState = 112
      
    2. 或者检查文件版本:

      C:\Windows\SysWOW64\wuaueng.dll
      C:\Windows\System32\wuaueng.dll
      

      需要7.9.9600.17031或更高版本


5

我曾经遇到类似的问题,我的情况是在Windows Server 2012 R2上尝试安装Visual Studio 2015 Update 1的Visual C++ Redistributable。然而,根本原因应该是相同的。

简单来说,您需要安装KB2999226的先决条件。

更详细地说,我得到的安装日志显示Windows更新KB2999226的安装失败。根据Microsoft网站此处

先决条件要安装此更新,必须先在Windows 8.1或Windows Server 2012 R2中安装2014年4月的更新 捆绑包(2919355)。或者,在Windows 7或Windows Server 2008 R2 上安装服务包1。 或者,在Windows Vista和Windows Server 2008上安装服务包2

在我安装了2014年4月的更新捆绑包后,在我的Windows Server 2012 R2上,我成功安装了Visual C++ Redistributable。


非常感谢。在我安装KB之前,我们的Windows 2008 R2服务器需要安装服务包1。 - Larry Flewwelling

1
操作系统无法安装所需更新Windows8.1-KB2999226-x64.msu。然而,我尝试从以下位置找到特定的更新 -
C:\ProgramData\Package Cache\469A82B09E217DDCF849181A586DF1C97C0C5C85\packages\Patch\amd64\Windows8.1-KB2999226-x64.msu.

我在那里找不到它,所以我从这里安装了kb2999226更新(Windows 10通用C运行时)

然后,我根据我的操作系统安装了更新,之后它就正常工作了。


0
在我的情况下,当我在Windows7 64x SP1上安装VS 2015时,我遇到了同样的问题,所以尝试取消安装并单独下载/安装KBKB2999226,但由于某种原因,独立更新安装程序也会卡在搜索更新的状态。

enter image description here

这是我所做的:

  1. 当VS安装程序卡在KB2999226更新时,我点击了取消。
  2. 安装程序带我回到确认取消的界面,等了一段时间后打开了Windows任务管理器并结束了wuse.exe(Windows独立更新安装程序)的进程。
  3. 在VS安装程序上点击“否”以返回安装过程。该过程完成时没有出现错误。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接