Я использую dotNetInstaller в качестве загрузчика, и мне нужно определить, установлен ли SQL Server 2008 или выше в качестве предварительного условия.
В настоящее время я использую этот реестр для обнаружения установки: HKLM\SOFTWARE\Microsoft\Microsoft SQL Server 2008 Redist\SharedManagementObjects\1033\CurrentVersion\Version
Если значение Version
равно 10.0.0 или выше, он обнаруживает его как установленный.Мы попробовали установочный пакет на 10 машинах (Windows XP SP3 и Windows 7), и предварительное условие работало нормально.Мы получаем сообщения от многих людей о том, что, хотя у них установлен SQL 2008, он не обнаруживает установку.
Из журнала:
2010-07-13 09:33:49 Checking whether registry value 'SOFTWARE\Microsoft\Microsoft SQL Server 2008 Redist\SharedManagementObjects\1033\CurrentVersion\Version' exists
2010-07-13 09:33:49 Opening 64-bit registry view (KEY_WOW64_64KEY)
2010-07-13 09:33:49 *** No registry key found: SOFTWARE\Microsoft\Microsoft SQL Server 2008 Redist\SharedManagementObjects\1033\CurrentVersion\Version, default value: false
2010-07-13 09:33:49 -- Microsoft SQL Server 2008 R2 x86 (Microsoft SQL Server 2008 R2 x86 Express): NOT INSTALLED
Проверка dotNetInstaller:
<installedcheck type="check_registry_value"
rootkey="HKEY_LOCAL_MACHINE"
path="SOFTWARE\Microsoft\Microsoft SQL Server 2008 Redist\SharedManagementObjects\1033\CurrentVersion"
fieldname="Version"
fieldtype="REG_SZ"
fieldvalue="10.0.0"
comparison="version_ge"
wowoption="WOW64_64"
defaultvalue="False"
description="Installed Check" />
Кто-нибудь знает окончательный ключ для проверки?