2015-10-15 104 views
2

我試圖使用Inno Setup命令行編譯器的/ D參數來選擇哪些文件應該包含在我的設置中。ISCC -/D編譯器參數似乎沒有效果

的代碼如下所示:

#define MyAppName "MyApp" 
#define MyAppVersion "1.0.0" 
(....) 
#define PHASE 

[Setup] 
AppVersion={#MyAppVersion} 
(....) 

[Files] 
Source: "C:\temp\myfile.txt"; DestDir: "{app}"; 

#if PHASE == "test" 
    Source: "C:\temp\onlyInTestBuildNeeded.txt"; DestDir: "{app}"; 
#endif 

我嘗試編譯腳本ISCC /DPHASE=test "D:\foo\bar.iss"但似乎沒有影響我的PHASE定義。

那麼任何人都可以解釋我做錯了什麼嗎?我在Inno Setup Help找不到更多信息。

回答

3

您在.iss文件覆蓋PHASE與線

#define PHASE 

刪除該行或使用#ifdef來檢查,以便確定它,只有當它不是通過命令行設置/D開關:

#ifndef PHASE 
    #define PHASE 
#endif 
+0

#ifndef做了詭計,謝謝。以爲我必須預先定義我想檢查的變量。但是你現在是否有辦法在inno setiup編譯器gui中將/ D傳遞給編譯器?或只通過cmd? –

+0

不知道,對不起。可能是一個新的SO問題可以幫助你。 – Wosi

+0

完成[here](http://stackoverflow.com/questions/33148701/iscc-pass-parmeter-in-the-compiler-ide) –