2013-07-26 76 views
3

我嘗試按以下方式使用宏/變量,但後來出現錯誤。你能建議嗎?如何在Inno Setup中使用變量宏?

#define AnnotateDir "C:\Users\new_skin\Annotate\project" 
#define AnnotateUserInstallAppData "{userappdata}\Annotate3" 


[Files] 
Source: {AnnotateDir}\bin\gm_annotate.exe; DestDir: {app}; Flags: ignoreversion external 

enter image description here

回答

6

你缺少它在腳本預處理階段用於emit defined variable value變量名前#字符。你可以這樣修復你的腳本:

#define AnnotateDir "C:\Users\new_skin\Annotate\project" 

[Files] 
Source: {#AnnotateDir}\bin\gm_annotate.exe; DestDir: {app}; Flags: ignoreversion external 

它看起來很容易讓人誤解, {app}常量將在預處理後保留,而您定義的變量將被其值替換,所以這就是爲什麼它們在腳本中有不同的表示法。

+0

謝謝!!!!!!!!! –

+2

不客氣!只是一個提示。如果您希望看到預處理腳本(所有定義的變量都被替換),您可以在腳本末尾添加像'#expr SaveToFile(「c:\ PreprocessedScript.iss」)''這樣的行,您將得到它保存到指定的文件中。 – TLama

相關問題