在我的 NSIS 安装程序中,我如何始终获取用户程序文件的路径,而不是C:/Program Files (x86)/
但始终只是C:/Program Files/
以下变量$PROGRAMFILES
给出C:/Program Files (x86)/
了 64 位和C:/Program Files/
其他变量。我希望始终获得 C:/Program Files/ 目录的路径。
在我的 NSIS 安装程序中,我如何始终获取用户程序文件的路径,而不是C:/Program Files (x86)/
但始终只是C:/Program Files/
以下变量$PROGRAMFILES
给出C:/Program Files (x86)/
了 64 位和C:/Program Files/
其他变量。我希望始终获得 C:/Program Files/ 目录的路径。
仅 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
如果您总是想获取本机 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