我正在使用 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" />
有人知道检查的确定性关键吗?
(这句话可能需要更多上下文才能更准确地翻译)