我正在尝试使用Inno Setup创建一个安装程序,该安装程序将静态包含一个文件夹(如果存在)。如果用户系统上已经存在特定目录,则该文件夹将安装在用户系统上。
例如,有一些特定于2017、2018、2019的配置。如果我有一个CC2017
文件夹,请将其包含在安装程序中。如果该文件夹存在,安装程序会将其放在用户系统的2017文件夹中。
我使用变量来定义一些路径,并根据the answer here将其格式化为不带括号的形式。
#ifexist projpath + "\" + reponame + "\Plug-Ins\Windows\CC2017\"
Source: "{#projpath}\{#reponame}\Plug-Ins\Windows\CC2017\{#pluginname}\*"; \
DestDir: "{sd}\Program Files\Adobe\Adobe InDesign CC 2017\Plug-Ins\{#pluginname}"; \
Flags: ignoreversion recursesubdirs createallsubdirs replacesameversion; \
Check: MyDirCheck(ExpandConstant('{sd}\Program Files\Adobe\Adobe InDesign CC 2017'))
#endif
我知道它没有正确检查,因为当我添加ifexist
指令时,文件的大小要小得多。 Inno Setup docs提到“文件”,但没有提到文件夹,因此我怀疑它可能不支持检查文件夹。
语法有什么问题?
我正在Mac 10.13.6上使用Inno Setup 6.0.2
答案 0 :(得分:1)
有两种选择:
使用skipifsourcedoesntexist
flag:
delta
与#if
preprocessor directive一起使用DirExists
preprocessor function:
[Files]
Source: "folder\*"; DestDir: "{app}"; Flags: skipifsourcedoesntexist