Inno Setup - #define 指令 - 如何使用先前定义的变量?
Posted
技术标签:
【中文标题】Inno Setup - #define 指令 - 如何使用先前定义的变量?【英文标题】:Inno Setup - #define directive - how to use previously defined variable? 【发布时间】:2011-12-17 20:37:36 【问题描述】:我正在使用 Inno Setup 5.4.2 版。
我想定义要复制的文件的路径([Files] 部分中的 Source: 参数分为两部分,一个基本路径和子目录名称,用于特殊文件(如 .dll)。 我尝试了以下方法:
#define MyAppSetupDir "D:\MyApp\setup"
#define MyAppSetupQtDLLs #MyAppSetupDir"\DLLs"
[Files]
Source: #MyAppSetupDir\MyApp.exe; DestDir: app; Flags: ignoreversion
Source: #MyAppSetupDLLs\mstext35.dll; DestDir: app; Flags: ignoreversion
但我得到以下编译错误
[ISPP] Expression expected but opening brace ("") found.
我也尝试将大括号括在“”中,例如
#define MyAppSetupQtDLLs "#MyAppSetupDir\DLLs"
但这次我得到了
Error: Source file "D:\MyApp\setup\#MyAppSetupDir\DLLs\mstext35.dll" does not exist.
因此,ISSP 正确地替换了 MyAppSetupDir 变量,但随后再次放入了简单文本,就好像它没有识别指令一样。
我到处搜索,我已经找到了一个关于使用commonappdata
的discussion,但是我在文档和知识库中都找不到如何做到这一点。
我真的很感激一些提示,因为它看起来很接近,但没有找到正确的解决方案..
【问题讨论】:
【参考方案1】:#define MyAppSetupDir "D:\MyApp\setup"
#define MyAppSetupQtDLLs MyAppSetupDir + "\DLLs"
【讨论】:
以上是关于Inno Setup - #define 指令 - 如何使用先前定义的变量?的主要内容,如果未能解决你的问题,请参考以下文章
inno setup判断是Windows系统版本(其实还是Delphi代码,还能检查域控制器和家庭版)
Inno Setup 5 安装包制作!reg2iss,Inno Setup 问题。Inno Setup 怎么批量导入reg文件,(像nsis