Как определить, будет ли распространяться 32-разрядная версия Visual Studio 2013 на пользовательском компьютере через реестр?

Я использую DeployMaster для сборки установщика для 32-разрядного приложения Windows, написанного на С++ с использованием Qt.

Исполняемый файл зависит от распространяемой версии Visual Studio 2013, то есть 32-разрядная версия Visual Studio 2013, распространяемая, должна быть установлена ​​конечным пользователем, перед запуском этого приложения.

У меня есть googled, и посмотрел на другие вопросы StackOverflow. В частности, эта ссылка содержит точный ключ реестра для проверки, но для случая VS 2008.

Мне нужен VS 2013, а не VS 2008.

Однако в идеале это будет надежная проверка реестра, а не программное решение, потому что я могу легко проверить раздел реестра с помощью установщика DeployMaster. (Если в системе определено, что у нее не установлен распространяемый дистрибутив, также легко установить установщик DeployMaster установщиком.)

Кто-нибудь знает надежный метод, предпочтительно используя ключ реестра, который позволяет определить, будет ли распространяться 32-разрядная версия VS 2013 на конечной машине?

Ответ 1

Ключ, который вам нужен, это HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DevDiv\vc\Servicing\12.0\RuntimeMinimum.

Ответ 2

Я использую эти ключи 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, и они более точно соответствуют тем, что были в предыдущих версиях. например VС++ 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

Ответ 3

На всякий случай кто-то смотрит на это, но использует NSIS для развертывания своей программы.

Вы проверяете:

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

Если $0 равно 1, то оно установлено. Если нет, это не так.

Ответ 4

Я нашел его здесь:

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, если он был установлен. Теперь я просто хочу, чтобы Microsoft Devdiv могла поговорить с командой Windows, чтобы мы могли иметь каноническое место для обнаружения этого материала и каноническое имя для Распространяемого. Подсказка Microsoft, она не называется "минимальным временем выполнения"