2013-01-17 81 views
1

裏面我NSIS安裝,我怎麼總是得到路徑的用戶程序文件,而不是C:/Program Files (x86)/但始終只是C:/Program Files/獲取路徑Program Files文件

以下變量$PROGRAMFILESC:/Program Files (x86)/在64位和C:/Program Files/他人。我總是想要通往C:/ Program Files /目錄的路徑。對於應用

+4

爲什麼?如果你的程序是32位的,你應該使用'C:/ Program Files(x86)/' – SLaks

回答

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 
+0

$ {EnableX64FSRedirection}不會改變常量,並且你不應該在很長一段時間內保持它的啓用, 。 – Anders

+0

你說得對。所以簡單地說,Jake可以使用'$ PROGRAMFILES64' /'$ PROGRAMFILES32'和'$ PROGRAMFILES'來調用特定的Program Files目錄。 – RobeN

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 
相關問題