如何快速但可靠地确定是否安装了Visual C ++ 2013 Runtime

时间:2015-12-09 00:49:11

标签: c# .net windows

我正在尝试让我的应用程序确定用户系统上是否安装了Microsoft Visual C ++ 2013 Redistributable。我查看了答案hereherehere,但看起来所有答案都分为两大类:

  1. 检查注册表:这不是一个选项,因为如果安装了Visual Studio或者已删除了Visual C ++ ,则会出现误报。 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallHKLM\SOFTWARE\Microsoft\VisualStudio\12.0\VCHKLM\SOFTWARE\Wow6432Node\Microsoft\DevDiv\VC就是这种情况。
  2. 使用wmic product getnew ManagementObjectSearcher("SELECT * FROM Win32_Product")使用WMI /检查系统表。这是可靠的,但非常慢(40多秒),因为它看起来必须在返回结果之前加载系统上安装的所有产品。
  3. 运行可再发行安装程序时,安装程​​序可以非常快速地确定该组件是否已安装:

    Already installed

    或未安装:

    Not installed

    仍然可靠,最快捷的方法是什么?理想情况下,我想知道: Microsoft如何快速完成这项工作?我可以这样做吗?

1 个答案:

答案 0 :(得分:3)

As has now been explained in the answer to another question,可以使用更可靠的注册表值:

Microsoft Visual C++ 2013 Redistributable (x64)
Registry Key: HKLM\SOFTWARE\Classes\Installer\Dependencies\{050d4fc8-5d48-4b8f-8972-47c82c46020f} 
Configuration: x64
Version: 12.0.30501.0

Microsoft Visual C++ 2013 Redistributable (x86)
Registry Key: HKLM\SOFTWARE\Classes\Installer\Dependencies\{f65db027-aff3-4070-886a-0d87064aabb1} 
Configuration: x86
Version: 12.0.30501.0