Inno Setup 在 Windows x64 上设置命名管道
Inno Setup Setting named pipe on Windows x64
我在使用 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 版本。
Inno Setup 安装程序是 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
参见[Registry]
section documentation。
我在使用 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 版本。
Inno Setup 安装程序是 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
参见[Registry]
section documentation。