获取程序文件的路径

时间:2013-01-17 01:28:18

标签: installer nsis

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

以下变量$PROGRAMFILES在64位上提供C:/Program Files (x86)/,在其他位上提供C:/Program Files/。我想要总是获得C:/ Program Files /目录的路径。

2 个答案:

答案 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