windows - 如何以编程方式确定是否安装了 VS2012 Update 1?

标签 windows visual-studio-2012

对于我们的构建系统,我希望能够确保只使用 VS2012 Update 1 而基本的 VS2012。我如何以编程方式执行此操作?

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

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

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

一些人已经在对 MS blog post about the update 的评论中要求澄清这是否是有意的。没有任何回应。

我想我可以检查 crtversion.h 中的版本,但现在我担心 amd64 编译器没有更新以正确使用新的 CRT。

最佳答案

如果您想要一个在 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 更新 1

关于windows - 如何以编程方式确定是否安装了 VS2012 Update 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14280367/

相关文章:

c++ - 信号量上的 WaitForSingleObject 不等待,立即返回

visual-studio - SharePoint 2013 应用程序部署错误 : "A different version of this App is already installed with the same version number"

C++ 小对象性能

windows - 在选择字符串命令中两次选择的原因

c++ - Qt应用程序阻塞系统关机

java - 如何在Windows上通过文件关联运行.sh并从Java获取返回值

c - 制作跨所有用户的单例应用程序

visual-studio-2012 - TFS 2012 Power Tools 可以与 TFS 2010 一起使用吗?

c# - VSTO 应用程序加载项无法加载 - 提示 "The Managed Add-in Loader failed to initialize"

asp.net-mvc - MVC4 脚手架添加 Controller 给出错误 "Unable to retrieve metadata..."