Installshield Basic MSI プロジェクトに、レジストリから SQL Server のバージョンを調べるカスタム アクションがあります。
RegKey2012 = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\" & _
"Microsoft SQL Server\MSSQL11.MSSQLSERVER\"
If RegKeyExists(RegKey2012) Then
WScript.StdOut.Write("2012")
Else
WScript.StdOut.Write("2008R2")
End If
Function RegKeyExists(Key)
Dim oShell, entry
On Error Resume Next
Set oShell = CreateObject("WScript.Shell")
entry = oShell.RegRead(Key)
If Err.Number <> 0 Then
Err.Clear
RegKeyExists = False
Else
Err.Clear
RegKeyExists = True
End If
End Function
インストーラーは、Windows 7 マシンで正常に動作します。上記のスクリプトは、Windows Server 2012 マシン上で単独で正常に動作します。ただし、Windows Server 2012 で (ADMIN として) インストーラーを実行すると、期待どおりに動作せず、エラーの説明は - レジストリ キーが見つかりません。
何か案は。