我使用Inno Setup进行安装时遇到问题。我需要安装SQL 2012 Express x64版本,但是当它完成安装时,这个想法已经让100%配置环境,或者在我的情况下使用命名管道。
必须通过记录输入命名管道,然后使用以下两行:
[注册表]
x64 -
Root: HKLM; Subkey: SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo; ValueType: string; ValueName: DevServer; ValueData: DBNMPNTW,\\.\PIPE\MSSQL$SQL2012EXPRESS\sql\query
x86(正常) - Root: HKLM; Subkey: SOFTWARE\Wow6432Node\Microsoft\MSSQLServer\Client\ConnectTo; ValueType: string; ValueName: DevServer; ValueData: DBNMPNTW,\\.\PIPE\MSSQL$SQL2012EXPRESS\sql\query
对于x86版本,它100%正确工作。至于x64版本不起作用,我注意到应该在“regedit”中创建的路径不存在,但如果由Configuration Manager手动创建,一切正常。
我测试过还创建了一个批处理,以便在安装期间运行.reg文件,也不会被命中。
记住我的问题仅适用于x64版本。
答案 0 :(得分:2)
Inno安装程序安装程序是32位应用程序,因此默认情况下SOFTWARE
会重定向到SOFTWARE\Wow6432Node
。
您必须使用Root: HKLM64
明确避免重定向。
您可能还需要添加Check: IsWin64
以确保在32位安装中不处理该条目,因为它会导致错误。
[Registry]
Root: HKLM64; Subkey: SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo; ValueType: string; \
ValueName: DevServer; ValueData: DBNMPNTW,\\.\PIPE\MSSQL$SQL2012EXPRESS\sql\query; \
Check: IsWin64