【发布时间】:2020-03-09 10:41:44
【问题描述】:
我正在使用 Inno Setup 工具以这种方式安装一些程序及其关联的宏:
[Files]
Source: "..\macros\*.js"; DestDir: "{app}\macros"; Flags: ignoreversion
现在我想做的是让用户选择一部分宏,而不是全部安装。例如,我想在安装过程中显示一个自定义复选框页面,用户可以在其中选择他想安装的宏(额外的“全选”、“全选”快捷按钮会很棒)。
你知道我可以从中获得启发的任何类似案例/示例 Inno Setup-script 吗?
NB1:我不知道..\macros\ 文件夹中有多少个宏,也不知道它们的名称,所以我无法在[Files] 部分中一一列出。
NB2:我已经阅读了这个帖子,但这不是我真正想要的(需要在 macros 文件夹中的任何更改上更新 .iss,这不是一个聪明的解决方案):How can I add a CheckBox for optional files during install? (innosetup)
【问题讨论】:
-
见Inno Setup: Dynamically add a component for all files in a folder and its subfolders——你的代码实际上可以更简单,因为你不需要它递归到子目录。
-
@MartinPrikryl 听起来不错,到目前为止,我遇到编译器错误,将 emit 替换为我自己的文件夹
#emit ProcessFolder("..\macros", "")...需要进一步研究...错误消息是“参数“名称”包含无效字符” -
尝试使用绝对路径。如果你不让它工作,请发帖minimal reproducible example。
-
@MartinPrikryl 我想我明白了...错误不是来自绝对/相对路径,而是来自包含括号
[ ]的宏的名称...请参见此处的图片:@ 987654324@ ... 如果文件夹仅包含macro1.js一切正常,但添加[MyTool] - macro2.js会产生问题。 -
好的,你需要让它处理这些文件吗?或者你可以重命名它们吗?
标签: inno-setup