我们希望开始构建64位内部使用的软件,今天早上发现安装x64 VS 2013可再发行组件要么卸载x86 dll,要么无法访问x86 dll。我们有很多软件,并且不想一次性重建所有内容以进行硬切换。是否有合理的方法来安装这两个版本的可再发行组件,以便它们共存,这样就可以完成迁移,而不是从一个构建到另一个构建的硬件切换?安装了Visual Studio 2013的开发机器没有任何问题,因为它提供了两组dll并使它们可以同时访问。
答案 0 :(得分:2)
为基于x86的应用程序安装VC ++ 2013更新后,缺少x64 Visual C ++ 2013运行时库。 例如,安装“Visual C ++ Redistributable 2013 x86 v12.0.30501”会删除非目标体系结构的二进制文件,即“Visual C ++ Redistributable 2013 v12.0.21005”x86和x64!
可以从https://www.microsoft.com/en-us/download/details.aspx?id=40784
下载VCRedist的12.0.30501版本解决方案 - 安装https://support.microsoft.com/en-us/kb/3138367 此修复程序确保在安装更新后添加或删除程序时,Visual C ++可再发行组件的两个版本都可见。
Affiliation - Microsoft支持工程师
答案 1 :(得分:1)
事实证明,问题似乎是x64可再发行版破坏了注册表项。可以在此处找到可再发行组件的注册表项:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\ VisualStudio的\ 12.0 \ VC \运行时
安装x86版本后,它会将自己的密钥添加到任何存在的密钥中。安装x64版本后,它会删除其他密钥(在本例中为已安装的x86密钥),然后添加它自己的密钥。 dll在那里,没有正确引用,所以可以使用它们。
这里的快速解决方案是首先安装x64 redist,然后安装x86版本,然后两者都可以正常使用。
为什么x64 clobbers而不是x86不在我之外。
答案 2 :(得分:-1)
首先安装x64可再发行,然后再安装x86,它解决了问题。