如果在 64 位主机上,我尝试使用“x64.nsh”将默认安装目录设置为 PROGRAMFILES64
。安装程序脚本看起来与此类似:
!include x64.nsh
# set to default here, override in .onInit if on 64bit
InstallDir "$PROGRAMFILES\AppName"
function .onInit
${If} ${RunningX64}
SetRegView 64
StrCpy $INSTDIR "$PROGRAMFILES64\AppName"
${EndIf}
functionEnd
但它顽固地安装到c:\Program Files\AppName
。
我看过一些例子(特别是this one),但它们似乎都不适合我。有完整的例子吗?
即使在 64 位操作系统上打包 64 位代码,这是否与 nsis 创建 32 位安装程序(PE32 可执行文件 (GUI) Intel 80386
)有关?
编辑:实际上,我不介意使用仅 64 位的安装程序,因为存在(并且可能不会)32 位版本。但我似乎无法从 $PROGRAMFILES64
变量获取 Program Files (x86)
。
最佳答案
正如 @leppie 所指出的,将 64 位二进制文件安装到 c:\Program Files
中是正确的(而不是 c:
Program Files (x86)
我相信是基于其他一些 64 位软件的安装。仅限 64 位的安装程序可以直接使用 $PROGRAMFILES64
。
关于64-bit - 在 64 位主机上安装到 "Program Files (x86)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14089647/