1

在我的 NSIS 安装程序中,我如何始终获取用户程序文件的路径,而不是C:/Program Files (x86)/但始终只是C:/Program Files/

以下变量$PROGRAMFILES给出C:/Program Files (x86)/了 64 位和C:/Program Files/其他变量。我希望始终获得 C:/Program Files/ 目录的路径。

4

2 回答 2

1

仅 64 位的应用示例,但您可以轻松地将其转换为 32+64 位 :)

!include x64.nsh

Function .onInit
    ${If} ${RunningX64}
    ;${EnableX64FSRedirection} ;- only if needed
    StrCpy "$INSTDIR" "$PROGRAMFILES64\Modern UI Test"
    ${Else}
    StrCpy "$INSTDIR" "$PROGRAMFILES\Modern UI Test"
    ${EndIf}
FunctionEnd
于 2013-01-17T08:58:41.160 回答
1

如果您总是想获取本机 Program Files 文件夹,请使用 $PROGRAMFILES64 但这样做通常是错误的,因为不应在此处安装 x86 二进制文件。

如果您的安装程序同时具有 x86 和 x64 二进制文件,您可以使用 $PROGRAMFILES64:

!include x64.nsh

InstallDir "$PROGRAMFILES64\MyApp"

Section
SetOutPath $InstDir
${If} ${RunningX64}
  File "x64\myapp.exe"
${Else}
  File "x86\myapp.exe"
${EndIf}
SectionEnd
于 2013-01-17T10:49:46.627 回答