C++ VS2013是否使用与VS2012相同的C运行时(例如msvcr110)?

C++ VS2013是否使用与VS2012相同的C运行时(例如msvcr110)?,c++,visual-studio-2012,visual-studio-2013,C++,Visual Studio 2012,Visual Studio 2013,我通常认为VisualStudio的每个版本都与不同版本的C运行时绑定。例如:VS2005:msvcr80.dll::VS2008:msvcr90.dll 我的一位同事告诉我,他的安装程序表明我们的VS2013项目依赖于msvcr110.dll。我们都觉得这很奇怪,因为这与VS2012使用的依赖项相同 但是,MSDN支持这一点: Visual Studio 2013真的重用了2012年的运行时吗,还是我遗漏了什么 编辑:我忘了在原始问题中提到Visual Studio 2013可再发行运

我通常认为VisualStudio的每个版本都与不同版本的C运行时绑定。例如:
VS2005:msvcr80.dll::VS2008:msvcr90.dll

我的一位同事告诉我,他的安装程序表明我们的VS2013项目依赖于msvcr110.dll。我们都觉得这很奇怪,因为这与VS2012使用的依赖项相同

但是,MSDN支持这一点:

Visual Studio 2013真的重用了2012年的运行时吗,还是我遗漏了什么

编辑:我忘了在原始问题中提到Visual Studio 2013可再发行运行时附带一个文件msvcr120.dll。我的困惑来自这样一个事实,即这个文件存在,但我们的安装程序既没有识别,也没有在MSDN文档中提到

编辑:在与我的同事讨论如何确定依赖关系后,安装程序认为我们的项目依赖于msvcr110.dll的原因是因为它正在查看旧版本

不幸的是,这恰好与MSDN文档中关于运行时版本的复制/粘贴错误相吻合。我将与Microsoft联系,让他们知道文档错误。再次感谢大家的帮助


注意:即使它们使用相同的运行时,我也不会假设将来的任何版本都是这样。我发现这很奇怪。默认情况下,

< p> 2013 C和C++项目将取决于<代码> MsVCR120 .dll <代码>(或调试代码等价于代码> MVCR20d.DLL< /COD>)。 但是,如果机器上安装了VS1012,则通过将项目设置中的“平台工具集”更改为“Visual Studio 2012(v110)”,很容易将依赖项更改为
msvcr110.dll
。支持追溯到VS2008(v90)的较旧版本的运行时


我假设由于一个简单的疏忽,您链接到的2013运行时的文档页面没有更新。

这主要是我对编译器版本之间二进制兼容性的期望的副产品。(最好是惊喜而不是不愉快。)简单的解释是,您依赖于由VS的早期版本构建的DLL。可能是平台工具集设置错误,也可能是复制的。感谢您的回复。我同意MSDN文档完全可能存在复制/粘贴错误。不过,让我停顿的主要原因是,文档和安装程序都在这么说。明天我会和我的同事核实一下,看看这个依赖关系是如何被识别出来的——因为我这边也完全可能有语法错误!别忘了检查项目设置中的“平台工具集”属性。这实际上与我们首先注意到这一点的原因有关:我们最近修改了我们的项目,使用2013编译器而不是2012编译器。不过,我会仔细检查每个项目的设置,以防出现任何混乱。另外,我的理解是,v12运行时对于我们来说根本没有被识别为依赖项,这正是引起我们注意的原因。不过,我明天会和我的同事核实一下。