我使用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" />
有人知道要检查的最终密钥吗?
答案 0 :(得分:2)
我相信我使用的密钥只检测工具是否已安装。我将使用此密钥:SOFTWARE\Microsoft\Microsoft SQL Server\100\Bootstrap Release\1033\CurrentVersion\Version
答案 1 :(得分:2)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Bootstrap\Setup
PatchLevel
似乎更有可能成为候选者,因为R2和R2 SP1安装都会更新。
答案 2 :(得分:1)
他们没有使用SQL Server 2008 Developer Edition是吗?我认为“Microsoft SQL Server 2008 Redist”级别的密钥可能有所不同,但我没有在这里查看。