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


use 64-bit install mode.