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 redistributable - i.e., the 32-bit Visual Studio 2013 redistributable must be installed by the end user, prior to running this application.
I have googled, and looked at other StackOverflow questions. In particular, this link provides the exact Registry key to check, but for the case of VS 2008.
I need VS 2013, not VS 2008.
However, ideally it will be a reliable registry check - not a programmatic solution - because I can easily check a registry key with a DeployMaster installer. (If the system is determined to not have the redistributable installed, it's also easy to have the DeployMaster installer kick off the installer.)
Does anybody know a reliable method, preferably using a Registry key, that allows to make it possible to determine if the 32-bit VS 2013 redistributable is installed on an end-user's machine?
The key you need is HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DevDiv\vc\Servicing\12.0\RuntimeMinimum
.
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
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'