2012-03-30 170 views
0

MainSection的.nsi文件包含與安裝程序一起捆綁的文件名。如何使文件可選包括在NSIS安裝程序的MainSection中

我需要製作一個文件,當安裝類型等於普通文件時,該文件不應該捆綁在一起,並且在類型等於服裝時該文件應該被捆綁。

Section "MainSection" SEC01
- SetOutPath "$INSTDIR"
- SetOverwrite ifnewer
* if (installtype==custom)
* File "IncludeThisFile"
SectionEnd

如何nsis.help實現上述非常感謝!

回答

0

你通常只是把東西可選在另一部分,但你還可以做你想做的:

!include LogicLib.nsh 
!include FileFunc.nsh 
var IsSpecialMode 

Function .onInit 
StrCpy $IsSpecialMode 0 
${GetParameters} $0 
ClearErrors 
${GetOptions} $0 "/includespecial" $1 
${IfNotThen} ${Errors} ${|} StrCpy $IsSpecialMode 1 ${|} 
FunctionEnd 

Page InstFiles 

Section 
SetOutPath "$instdir" 
${If} $IsSpecialMode <> 0 
    File "${__FILE__}" 
${EndIf} 
SectionEnd 

..和然後再對答案Anders.i運行MySetup.exe /includespecial

+0

感謝也做了同樣事情已經,我的問題不是要獲取/設置命令行var,如果我把主要部分中的If語句,而不考慮$ {If}值true或false,文件被捆綁(即構建期望可選文件也存在在編譯時)。我想知道如何在MainSection中使幾行可選(包括文件)。正如我所觀察到的,Main Condition中的If條件對包含或排除文件沒有影響 – user1234 2012-04-02 15:20:38

+0

您可以使用文件/非致命包含可能不存在的文件或使用!if for compile time logic ... – Anders 2012-04-02 21:50:02

+0

我已經使用/非致命, prob在特殊模式下甚至是真的,文件不存在,只是給出警告而不是錯誤,所以只是想知道是否有任何更好的解決方案來處理這種情況 – user1234 2012-04-03 05:09:19

相關問題