2

对于我们的构建系统,我希望能够确保只使用 VS2012 Update 1 而不是基本的 VS2012。我怎样才能以编程方式做到这一点?

通常,我会检查是否安装了正确的 Service Pack。但这是一个更新,而不是服务包。因此,Service Pack 的所有注册表项仍然为零。

啊,我已经进一步调查了......

在所有情况下,我们都会检查编译器的版本是否符合我们的预期。我被误导了,因为 cl.exe 的 amd64 版本报告的版本与更新前 1 (17.00.50727.1) 相同,所以我一直在寻找其他方法来进行检测。另一方面,cl.exe 的 x86、x86_amd64 和 x86_arm 版本都报告了一个新版本 (17.00.51106.1)。

一些人已经要求澄清这是否是在对MS 博客文章的评论中关于更新而没有任何回应。

我想我可以检查 crtversion.h 中的版本,但现在担心 amd64 编译器尚未更新以与新的 CRT 一起正常工作。

4

1 回答 1

1

如果您想要在VS2012VS2012 Update 1之间更改的注册表项,我建议您签入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\SplashInfo

在 Visual Studio 2012 中没有EnvVersion密钥。

在 Visual Studio 2012 Update 1 中,它具有以下值:EnvVersion =11.0.51106.01 Update 1

于 2013-01-11T19:39:20.410 回答