簡體   English   中英

NSIS:如何使用參數來構建不同的安裝程序

[英]NSIS: How to use a paramter to build different installer

我想根據我設置參數的方式來不同地構建腳本。

我這樣稱呼我的腳本:

makensis test.nsi -DFLAG=10makensis test.nsi -DFLAG=8

我試圖像這里一樣使用它作為參數

${If} ${FLAG} == 10
   ...
${IfElse} ${FLAG} == 8
   ....
${Else}
    !error "Set the Flag."
${IfEnd}

但是我仍然只收到錯誤消息。

我還嘗試使用文檔4.12中的GetParamters

include FileFunc.nsh
!insertmacro GetParameters
!insertmacro GetOptions

${GetParameters} $R0
ClearErrors
${GetOptions} $R0 -DFLAG= $0
!echo $R0

但是它只返回$R0 ,而不返回值。 有什么錯誤,或者有什么策略?

首先,必須以makensis -DFLAG=8 test.nsi身份執行它,因為參數的解析順序與傳遞它們的順序相同。

參數按順序處理。 makensis /Ddef script.nsimakensis script.nsi /Ddef

其次,您不能將${If}!error混合使用,因為前者是運行時指令,而后者是編譯時指令。

使用!if ${FLAG} = 8!ifdef FLAG

GetParameters返回傳遞給最終用戶系統而不是編譯器上的安裝程序的參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM