在我的NSIS安装程序中,我如何始终获取用户程序文件的路径,而不是C:/Program Files (x86)/
,而只是C:/Program Files/
以下变量$PROGRAMFILES
在64位上提供C:/Program Files (x86)/
,在其他位上提供C:/Program Files/
。我想要总是获得C:/ Program Files /目录的路径。
答案 0 :(得分: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
答案 1 :(得分: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