2012-08-15 161 views
2

我正在製作一個NSIS腳本,用於檢查是否安裝了以前版本的應用程序。如果是這樣,它會詢問是否應該從這個以前的版本導入配置文件。所以我有一個全球變量配置文件我試圖在運行時設置取決於用戶是否選擇「是」或「否」。我遇到的問題是編譯時抱怨文件:「$ {XMLConfigDir} *。xml」 - >找不到文件。由於XMLConfigDir尚未設置,因此請使用。那麼無論如何要在運行時設置一個變量?運行時設置變量

回答

2

我的問題的解決方案是使用內置函數的CopyFiles而不是SetOutPath,然後使用File。

6

有聲明變量(瓦爾命令)和符號之間的差異(與定義限定命令!):

Var /GLOBAL myVar ; This is variable -> use it as $myVar 

!define mySymbol; This is symbol -> use it as ${mySymbol} 

嘗試這種情況:

!define XMLConfigDir "C:\some_path_to_XML\subdir\" 

Section "Main Section" 
     File "${XMLConfigDir}*.xml" 
SectionEnd 

符號也可以設置在安裝程序運行時期間使用命令行開關使用/D

+0

/D開關也可以在編譯期間使用:makensis.exe/DmySymbol =「C:\ some_path_to_XML \ subdir \」script_to_compile.nsi – Slappy 2012-08-15 18:02:02

+0

歡呼的信息,但我不明白它如何回答我的問題能夠使用File命令和一個在編譯時未知但在運行時確定的變量。 – Harry 2012-08-16 09:48:10

相關問題