I am using DeployMaster to build an installer for a 32-bit Windows application written in C++ using Qt.
The executable depends on the Visual Studio 2013 redistributa
The key you need is HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DevDiv\vc\Servicing\12.0\RuntimeMinimum
.
Just in case someone is looking at this, but is using NSIS to deploy their program.
You check:
ReadRegDword $0 HKLM "SOFTWARE\Wow6432Node\Microsoft\DevDiv\vc\Servicing\12.0\RuntimeMinimum" "Install"
If $0
equals 1
, then it is installed. If not, it isn't.
I found it here:
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}
This is probably better than the devdiv keys, as its the Windows key used to uninstall the msi, if its been installed. Now I just wish Microsoft's devdiv could talk to the Windows team so we can have a canonical place to detect this stuff, and a canonical name for Redistributable. Hint Microsoft, it ain't called 'minimum runtime'
I'm using these reg keys:
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
I've confirmed that they appear only after the redist is installed, and they more closely match the ones for previous versions. e.g. VC++ 2010 is:
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