windows server2012R 安装Microsoft Visual C++ 2015 Redistributable (x64) 安装失败

在安装MongoDB过程中遇到服务启动权限不足的问题,经排查发现需要安装MicrosoftVisualC++2015Redistributable(x64)。然而安装时出现错误0x80240017。为解决这个问题,需按特定顺序安装KB2919442、KB2919355和KB2999226等补丁。

起因是因为安装mongoDB,始终无法启动mongodb服务,一直提示Verify that you have sufficient privileges to start ;

查了很久,基本是因为需要安装Microsoft Visual C++ 2015 Redistributable (x64),下载好对应版本后安装提示出错,错误原因如下:

 Error 0x80240017: Failed to execute MSU package.

如何解决:

    

需要依次安装下面补丁:

1、KB2919442
Download Windows Server 2012 R2 更新程序 (KB2919442) from Official Microsoft Download Center

2、KB2919355

Download Windows Server 2012 R2 Update (KB2919355) from Official Microsoft Download Center

必须按以下顺序安装更新: clearcompressionflag.exe、 KB2919355、 KB2932046、 KB2959977、 KB2937592、 KB2938439 和 KB2934018。

3、KB2999226

<think>嗯,用户问的是在服务器上安装VC++ 2015会不会覆盖已有的VC++ 2008。这是个很实际的运维问题,用户可能是系统管理员或者负责软件部署的工程师。 从技术角度看,VC++运行库的版本兼容性确实容易让人困惑。用户可能担心安装新版本会导致旧程序无法运行,这种顾虑很合理——毕竟服务器环境稳定性最重要。 我记得微软官方文档明确说过不同版本的VC++运行库是并行安装的。不过需要确认具体细节:2008版对应VC9,2015是VC14,它们使用不同的系统文件(msvcr90.dll和msvcr140.dll)。这个关键信息必须告诉用户。 用户没提到具体场景,但既然在服务器环境,应该要强调验证步骤:如何检查现有版本?安装后如何测试?这些实操建议比单纯理论更重要。要不要补充说明注册表位置呢?不过考虑到用户可能不是开发者,还是保持答案简洁实用为好。 啊,还得提醒用户注意x86/x64架构区别。服务器通常两者都需要,但很多人会忽略这点。最后一定要强调“不覆盖”的结论,让用户放心操作。 用户语气比较正式,可能是在工作场合提问。回答时要保持专业但避免术语堆砌,重点给出可操作的指导。那些“相关问题”设计成阶梯式的:从基础确认到高级管理,方便用户按需深入。</think>在已安装 Microsoft Visual C++ 2008 Redistributable 的服务器上安装 **Microsoft Visual C++ 2015 Redistributable 不会覆盖前者**。两者是独立共存的关系,安装新版本不会卸载或替换旧版本。 以下是关键原因和注意事项: --- ### **1. 并行安装机制** - **不同版本的 VC++ 运行库独立运行** VC++ 2008(对应 VC9)和 VC++ 2015(对应 VC14)使用不同的动态链接库(DLL),例如: - VC++ 2008:`msvcr90.dll`、`msvcp90.dll` - VC++ 2015:`msvcp140.dll`、`vcruntime140.dll` 这些文件互不冲突,因此两者可同时存在[^1]。 - **应用程序依赖特定版本** 若某程序依赖 VC++ 2008,即使安装了 VC++ 2015,它仍会调用 `msvcr90.dll` 等旧版库,不会自动切换至新版[^2]。 --- ### **2. 安装后的验证** - **控制面板检查** 安装完成后,在「程序和功能」列表中会同时显示两个版本: ```plaintext Microsoft Visual C++ 2008 Redistributable - x86 9.0.xxxxx Microsoft Visual C++ 2015 Redistributable - x86 14.0.xxxxx ``` - **文件目录** 旧版库位于 `C:\Windows\System32\`(64位系统32位库在 `SysWOW64`),新版库路径不同,无覆盖风险。 --- ### **3. 注意事项** - **系统兼容性** VC++ 2015 要求 Windows 7 SP1 及以上版本,而 VC++ 2008 支持更早系统(如 Server 2003)。需确保服务器操作系统满足要求[^3]。 - **架构匹配** 若应用程序分32位(x86)和64位(x64),需安装对应架构的运行库。例如: - 32位程序:安装 x86 版 - 64位程序:需同时安装 x86 和 x64 版(因64位系统需通过 WOW64 运行32位程序)[^4]。 - **安装顺序无要求** 先装2008后装2015,或反之,均不影响共存性。 --- ### **4. 卸载影响** - 若卸载 VC++ 2008,依赖它的程序将无法运行,但 VC++ 2015 不受影响; - 若卸载 VC++ 2015,依赖它的程序会报错,但 VC++ 2008 仍有效。 --- ### **结论** 安装 VC++ 2015 不会覆盖 VC++ 2008,两者可安全共存。此举是为了确保不同时期开发的应用程序均能正常运行。建议通过官方渠道下载安装包,避免第三方修改版本引发冲突[^5]。 --- ### 相关问题 1. **如何验证服务器已安装的 VC++ 运行库版本?** 2. **同时安装多个 VC++ 运行库会占用过多磁盘空间吗?** 3. **若程序提示缺少 `msvcp140.dll`,应安装哪个版本的运行库?** 4. **VC++ 2015-2022 Redistributable 与早期版本(如2015)有何区别?** [^1]: Microsoft Docs: [部署旧版VC++应用程序](https://learn.microsoft.com/zh-cn/cpp/windows/deploying-native-desktop-applications-visual-cpp?view=msvc-170#redistributable_files) [^2]: [应用程序依赖特定运行库版本](https://stackoverflow.com/questions/32978749/do-i-need-to-install-both-vc-2015-and-vc-2010-redistributable) [^3]: [VC++ 2015系统要求](https://support.microsoft.com/en-us/topic/update-for-visual-c-2015-redistributable-8c9b7b6c-ff2f-4f79-9d8a-1d0d3a3e8e84) [^4]: [64位系统需同时安装x86/x64运行库](https://learn.microsoft.com/zh-cn/cpp/windows/building-32-bit-applications?view=msvc-170) [^5]: [官方下载VC++运行库](https://learn.microsoft.com/zh-CN/cpp/windows/latest-supported-vc-redist?view=msvc-170)
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值