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