Inno Setup:包含所有子文件夹的打包文件夹
Posted
技术标签:
【中文标题】Inno Setup:包含所有子文件夹的打包文件夹【英文标题】:Inno Setup: pack folder with all subfolders 【发布时间】:2014-01-14 10:06:29 【问题描述】:我在.iss
文件中有这一行:
Source: "..\Tcl\*"; DestDir: "app\Tcl"; Flags: ignoreversion
打包文件夹Tcl
。但它只需要文件夹内的文件,而不需要 Tcl
内的子文件夹。有没有办法将整个文件夹 Tcl
与所有子文件夹和文件一起使用? (不逐行列出所有子文件夹)。
Inno 设置 5.4.2.
【问题讨论】:
【参考方案1】:您也可以使用 Inno 向导,但如果您希望这些文件保留在它们从中导入的文件夹中,则需要在之后更正脚本,因为向导会将它们放入应用程序的默认文件夹中。
向导将生成:
[Files]
Source: "..\Tcl\*"; DestDir: "app; Flags: ignoreversion recursesubdirs
如果您需要维护您需要的文件夹结构:
[Files]
Source: "..\Tcl\*"; DestDir: "app\Tcl"; Flags: ignoreversion recursesubdirs
从 5.6.1 开始的 Inno Wizard 更新(2018 年 8 月 14 日) Inno 设置脚本向导现在可以选择指定子文件夹。在向导的 Application Files 步骤中,使用 Add Folder... 按钮,然后在选择要添加的文件夹后,确保在列表,然后单击 Edit... 并在 Destination Subfolder 文本框下,指定您希望之前选择的文件夹内容的位置。
【讨论】:
这节省了我很多时间和挫败感,tks! 想知道为什么这不是默认行为。当您的应用发生这种情况时,很难调试【参考方案2】:是的,有。只需将recursesubdirs
标志包含到您的[Files]
部分条目中。帮助说明此标志如下:
指示编译器或安装程序也搜索源 源目录下的子目录中的文件名/通配符。
所以,你应该做的就是这样修改你的[Files]
部分条目:
[Files]
Source: "..\Tcl\*"; DestDir: "app\Tcl"; Flags: ignoreversion recursesubdirs
【讨论】:
Source: "..\Tcl"; DestDir: "app"; Flags: ignoreversion recursesubdirs
也可以吗?
@Septagram 从我自己尝试它似乎导致编译错误..\Tcl not found
以上是关于Inno Setup:包含所有子文件夹的打包文件夹的主要内容,如果未能解决你的问题,请参考以下文章
NSIS 或 Inno Setup打包软件如何得到当前文件名