Inno Setup在Windows x64

时间:2015-11-19 11:06:31

标签: installation registry inno-setup setup-project

我使用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版本。

1 个答案:

答案 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

请参阅[Registry] section documentation

use 64-bit install mode