我使用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可再发行组件?
答案 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的规范名称。提示微软,它没有被称为“最小运行时间”