0
레지스트리에서 SQL Server 버전을 확인하기 위해 Installshield Basic MSI 프로젝트에 사용자 지정 작업이 있습니다.Windows 서버 2012의 설치 프로그램 레지스트리 액세스
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 서버 2012에서 설치 관리자 (ADMIN)를 실행하면 예상대로 작동하지 않고 오류 설명이 나타납니다. - 레지스트리 키를 찾을 수 없습니다.
아이디어가 없습니다.
어쩌면 32 대 64 비트 레지스트리 리디렉션 문제가 있습니까? – DaveE
아무 생각이 없습니다 .. 저는 2/10 Installshield에서 ... 정교하게 말씀해 주시겠습니까 ... 레지스트리 키는 32 비트와 64 비트 컴퓨터에서 동일합니다 - HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER – Subhasis
32 64 비트 Windows에서 -bit 앱의 레지스트리 키가 다른 위치로 리디렉션됩니다. app/installer가 32 비트 인 경우 64 비트 SQL Server의 레지스트리 항목이 "위치"에있는 동안 해당 레지스트리 조회가 해당 위치 (... \ SOFTWARE \ Wow6432Node \ ...)로 리디렉션 된 것일 수 있습니다. 표준 "위치. IS 도움말에서 REGDB_OPTION_WOW64_64KEY 또는 WOW64FSREDIRECTION을 찾으십시오. – DaveE