2

我正在尝试使用“x64.nsh”将默认安装目录设置为PROGRAMFILES64if 在 64 位主机上。安装程序脚本类似于以下内容:

!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.

我看过一些例子(尤其是这个),但似乎没有一个对我有用。有没有完整的例子?

这是否与 nsis 创建一个 32 位安装程序 ( PE32 executable (GUI) Intel 80386) 的事实有关,即使在 64 位操作系统上打包 64 位代码时也是如此?

编辑:我实际上不介意只有 64 位的安装程序,因为有(并且可能不会有)32 位版本。但我似乎无法Program Files (x86)$PROGRAMFILES64变量中得到。

4

1 回答 1

4

正如@leppie 所指出的,将 64 位二进制文​​件安装到其中是正确的c:\Program Files(不像c: Program Files (x86)我认为的基于安装其他一些 64 位软件。仅 64 位的安装程序可以$PROGRAMFILES64直接使用。

于 2012-12-30T10:51:14.650 回答