如何在Inno Setup中使用变量\ macros?

Tam*_*fen 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
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

TLa*_*ama 6

您在脚本预处理阶段#使用的变量名之前缺少char emit defined variable value.您可以这样修复脚本:

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

[Files]
Source: {#AnnotateDir}\bin\gm_annotate.exe; DestDir: {app}; Flags: ignoreversion external
Run Code Online (Sandbox Code Playgroud)

它看起来很有误导性,但是例如{app}常量将在预处理后保留,而您定义的变量将被其值替换,这就是为什么它们在脚本中有不同的表示法.

  • 别客气!只是一个提示.如果您想查看预处理的脚本,其中所有已定义的变量都被替换,您可以在脚本末尾添加类似`#expr SaveToFile("c:\ PreprocessedScript.iss")的行,您将获得它保存到指定的文件中. (2认同)