我在 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)时,它无法按预期工作,并且错误描述是 - 它找不到注册表项。
有任何想法吗。