2013-07-26 39 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

相关问题