C++ Visual Studio C++;可再发行兼容性

C++ Visual Studio C++;可再发行兼容性,c++,visual-studio,visual-studio-2013,C++,Visual Studio,Visual Studio 2013,我们的产品是使用Visual Studio 2013构建的,没有更新。我想将生成计算机更新为Visual Studio 2013更新3 我们为我们的产品发布补丁和热修复程序,其中包含产品二进制文件的子集。我担心如果我更新我们的构建机器并使用它们生成补丁会发生什么。我们产品的补丁安装将包含DLL和Excel的混合,这些编译器是用不同版本的编译器构建的,它们是针对VisualStudioC++ + RealDeabtStudio的不同版本构建的。 2013年更新3版本的可再发行版本是否需要使用补丁重

我们的产品是使用Visual Studio 2013构建的,没有更新。我想将生成计算机更新为Visual Studio 2013更新3

我们为我们的产品发布补丁和热修复程序,其中包含产品二进制文件的子集。我担心如果我更新我们的构建机器并使用它们生成补丁会发生什么。我们产品的补丁安装将包含DLL和Excel的混合,这些编译器是用不同版本的编译器构建的,它们是针对VisualStudioC++ + RealDeabtStudio的不同版本构建的。 2013年更新3版本的可再发行版本是否需要使用补丁重新发布

不同更新版本的可再分发文件是否兼容,是否支持此方案?

Soapbox 我们产品的补丁安装将包含使用不同版本构建的DLL和EXE的组合

在这方面,你已经遇到了一个问题:我们的政策是总是把所有东西拼凑在一起。每一组分布的(我们)C++二进制文件都是完全自包含的,我们不做任何一组C++二进制文件的部分更新——有太多的机会可能会中断,独立于VC运行时问题。 (当然,如果您有在C DLL API后面“防火墙”的模块,那就不同了。)

关于这个问题 按照我对2010年以后的Microsoft C(++)运行时库的理解,它们都安装在“System32”中,并按主要版本进行版本控制,因此通常一个Windows系统只安装了一组VS2013 Redist,并可用于所有使用默认设置的应用程序(即,不干扰清单和WinSX)

这意味着所有VS2013可再发行库必须完全向前和向后ABI兼容,因此构建服务器是否具有与客户计算机不同的“次要”再发行版本通常无关紧要。只要所有模块都使用DLL VCruntime版本,任何时候都只能有一个加载到任何进程中,因此所有模块都可以看到应该兼容的相同版本

尽管如此,我认为将(最新的)VCRedist包含到修补程序中,以排除旧版本导致的、仅在客户机器上出现的任何潜在错误,这对您自己来说是一件好事


VCliDIST共享的方式,你(或任何其他人)无论如何都不能保证它的小版本,所以你最好确保客户端机器至少运行你使用的版本。

Irc,对于VS2013 C++运行时只有一套(x86,x64和arm);我不知道运行时组件有更新。你有一个链接的每个VS2013和VS2013.3 C++运行时?@尼尔-你可能是正确的,也许只有一个版本!我知道Visual Studio 2012有不同的运行时版本用于不同的更新。。。至少对于更新4,所以我假设——也许是错误的——2013年也会有。