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

时间:2014-02-11 12:43:22

标签: windows visual-studio registry visual-studio-2013 redistributable

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

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

我用Google搜索,并查看其他StackOverflow问题。特别是this link provides the exact Registry key to check,但对于VS 2008的情况。

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

但是,理想情况下,它将是一个可靠的注册表检查 - 而不是程序化解决方案 - 因为我可以使用DeployMaster安装程序轻松检查注册表项。 (如果确定系统没有安装可再发行组件,那么DeployMaster安装程序也很容易启动安装程序。)

是否有人知道一种可靠的方法,最好使用注册表项,以便确定是否可以在最终用户的计算机上安装32位VS 2013可再发行组件?

5 个答案:

答案 0 :(得分:8)

我正在使用这些reg键: 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

答案 1 :(得分:5)

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

答案 2 :(得分:3)

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

你检查:

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

如果$0等于1,则会安装它。如果没有,那就不是。

答案 3 :(得分:1)

对于 Visual Studio 2013 Update 5,32 位版本 (12.0.40664),关键是:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{8122DAB1-ED4D-3676-BB0A-CA368196543E}

答案 4 :(得分:0)

我在这里找到了它:

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密钥更好,因为它用于卸载msi的Windows密钥(如果已安装)。现在我只希望微软的devdiv可以与Windows团队交流,这样我们就可以有一个规范的地方来检测这些东西,以及Redistributable的规范名称。提示微软,它没有被称为“最小运行时间”