同时安装两个Visual Studio 2013 Redistributable包(x86和x64)



我们希望开始构建64位的内部使用软件,今天早上发现安装x64 VS 2013可再发行组件要么卸载x86 dll,要么使x86 dll无法访问。 我们有很多软件,不想一次性重建所有内容以进行硬转换。 是否有一种合理的方法来安装两个版本的可再发行组件包,以便它们共存,以便可以完成迁移,而不是从一个版本硬切到另一个版本? 安装了Visual Studio 2013的开发计算机没有问题,因为它提供了两组dll,并使它们同时可访问。

为基于 x86 的应用程序安装 VC++ 2013 更新后,x64 Visual C++ 2013 运行时库丢失。例如,安装"Visual C++ Redistributable 2013 x86 v12.0.30501"将删除非目标体系结构的二进制文件,即"Visual C++ Redistributable 2013 v12.0.21005"x86和x64!

VCRedist 的 12.0.30501 版本可以从 https://www.microsoft.com/en-us/download/details.aspx?id=40784 下载

解决方案 - 安装 https://support.microsoft.com/en-us/kb/3138367此修复可确保在安装更新后添加或删除程序时,可视C++可再发行组件的两个版本都可见。

隶属关系 - Microsoft支持工程师

事实证明,问题似乎是 x64 可再发行组件破坏了注册表项。 可再发行组件的注册表项可在此处找到:

HKEY_LOCAL_MACHINE\软件\Wow6432Node\Microsoft\VisualStudio\12.0\VC\Runtimes

安装 x86 版本时,它会将自己的密钥添加到存在的任何内容中。安装 x64 版本时,它会删除其他密钥(在本例中为已安装的 x86 密钥),然后添加自己的密钥。 dll 在那里,只是没有正确引用,因此可以使用它们。

这里的快速解决方案是先安装 x64 redist,然后安装 x86 版本,然后两者都可以使用而不会出现问题。

为什么 x64 的 clobbers 而 x86 没有,这超出了我的理解。

首先安装

x64 可再发行组件,然后安装 x86,它解决了问题。

最新更新