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

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

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

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

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

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

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

4 ответов


ключ вам нужен HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DevDiv\vc\Servicing.0\RuntimeMinimum.


я использую эти ключи reg: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio.0\VC\Runtimes\x86 Installed HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio.0\VC\Runtimes\x64 Installed

Я подтвердил, что они появляются только после установки redist, и они более точно совпадают с предыдущими версиями. например, VC++ 2010: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio.0\VC\VCRedist\x86 Installed HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio.0\VC\VCRedist\x64 Installed


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

вы проверить:

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

Если равна 1, затем он устанавливается. Если нет, то нет.--6-->


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

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