对于我们的构建系统,我希望能够确保只使用 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 一起正常工作。