在使用宏搜索和查找文件时,试图了解 Inno Setup 脚本中包含另一个脚本文件和源文件的语法之间的区别。
我尝试过使用FindFolder
函数来自在 Inno Setup 中使用通配符查找目录:
#define FindFolder(Path) \
Local[0] = FindFirst(Path, faDirectory), \
Local[0] ? AddBackslash(ExtractFileDir(Path)) + FindGetFileName(Local[0]) : Path
像这样:
#include "{#FindFolder('..\..\..\packages\ScriptPreRequisites*')}\DotNetDependencies.iss"
Within #
你在“领域”Inno安装预处理器.
有两种方法可以进入预处理器领域。
当您想要在预处理器领域之外使用预处理器表达式时,内联语法非常有用。就像在正常的 Inno Setup 部分(或在 Pascal Script 代码中)一样:
[Files]
Source: "{#FindFolder("..\packages\PackagesA*")}\*.*"; DestDir: "{app}"; \
flags: recursesubdirs
虽然在#include预处理指令,您已经进入了预处理器领域。在那里,{#xxx}
语法无效(理论上它甚至可能具有不同的 [valid] 含义,但实际上大括号在预处理器中没有用处)。
语法为#include
指令是:
#include <expression>
预处理器使用类C语言表达式语法。所以在这种情况下你的表达是:
FindFolder('..\..\..\packages\ScriptPreRequisites*') + '\DotNetDependencies.iss'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)