1

NSIS インストーラー内で、ユーザーのプログラム ファイルへのパスを常に取得するにはどうすればよいですかC:/Program Files (x86)/?C:/Program Files/

次の変数$PROGRAMFILESC:/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 に答える