dotNetInstallerをブートストラッパーとして使用していますが、SQLServer2008以降が前提条件としてインストールされているかどうかを検出する必要があります。
現在、このレジストリを使用してインストールを検出しています。
HKLM\SOFTWARE\Microsoft\Microsoft SQL Server 2008 Redist\SharedManagementObjects\1033\CurrentVersion\Version
の値Version
が10.0.0以上の場合、インストール済みとして検出されます。ここでは、10台のマシン(Windows XPSP3およびWindows7)でインストールパッケージを試しましたが、前提条件は正常に機能しました。多くの人から、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" />
誰かがチェックする決定的な鍵を知っていますか?