如何确定32位Visual Studio 2013可再发行组件是否通过registry可靠地安装在用户计算机上?

我使用DeployMaster为使用Qt编写的C ++编写的32位Windows应用程序构build安装程序。

可执行文件取决于Visual Studio 2013的可再发行组件 – 即,在运行此应用程序之前,必须由最终用户安装32位Visual Studio 2013可再发行组件 。

我GOOGLE了,看着其他的StackOverflow的问题。 特别是, 这个链接提供了确切的registry项来检查 ,但对于VS 2008的情况。

我需要VS 2013,而不是VS 2008。

但是,理想情况下,这将是一个可靠的registry检查 – 而不是一个程序化的解决scheme – 因为我可以轻松地检查与DeployMaster安装程序的registry项。 (如果系统确定没有安装可再发行组件,使用DeployMaster安装程序启动安装程序也很容易。)

有没有人知道一个可靠的方法,最好使用registry项,这使得可以确定32位VS 2013可再发行组件是否安装在最终用户的机器上?

Solutions Collecting From Web of "如何确定32位Visual Studio 2013可再发行组件是否通过registry可靠地安装在用户计算机上?"

您需要的密钥是HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DevDiv\vc\Servicing\12.0\RuntimeMinimum

我正在使用这些注册表项: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12.0\VC\Runtimes\x86 Installed HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12.0\VC\Runtimes\x64 Installed

我已经确认,只有在安装redist之后,才会显示它们,并且与之前的版本更匹配。 例如VC ++ 2010是: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\VC\VCRedist\x86 Installed HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\VC\VCRedist\x64 Installed

以防万一有人在看这个,但是用NSIS来部署他们的程序。

你检查:

 ReadRegDword $0 HKLM "SOFTWARE\Wow6432Node\Microsoft\DevDiv\vc\Servicing\12.0\RuntimeMinimum" "Install" 

如果$0等于1 ,那么它被安装。 如果不是,那不是。

我在这里找到了:

 32bit HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{13A4EE12-23EA-3371-91EE-EFB36DDFFF3E} or HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{13A4EE12-23EA-3371-91EE-EFB36DDFFF3E} 64bit HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{A749D8E6-B613-3BE3-8F5F-045C84EBA29B} 

这可能比devdiv密钥更好,因为它的Windows密钥用于卸载msi,如果安装了它。 现在我只希望微软的devdiv能够和Windows团队交流,所以我们可以有一个规范的地方来检测这个东西,并且是一个可分发的名字。 提示微软,它不被称为“最小运行时间”