我正在尝试让我的应用程序确定用户系统上是否安装了Microsoft Visual C ++ 2013 Redistributable。我查看了答案here,here和here,但看起来所有答案都分为两大类:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
,HKLM\SOFTWARE\Microsoft\VisualStudio\12.0\VC
和HKLM\SOFTWARE\Wow6432Node\Microsoft\DevDiv\VC
就是这种情况。wmic product get
或new ManagementObjectSearcher("SELECT * FROM Win32_Product")
使用WMI /检查系统表。这是可靠的,但非常慢(40多秒),因为它看起来必须在返回结果之前加载系统上安装的所有产品。运行可再发行安装程序时,安装程序可以非常快速地确定该组件是否已安装:
或未安装:
仍然可靠,最快捷的方法是什么?理想情况下,我想知道: Microsoft如何快速完成这项工作?我可以这样做吗?
答案 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