【问题标题】:Inno Setup: pack folder with all subfoldersInno Setup:包含所有子文件夹的打包文件夹
【发布时间】:2014-01-14 10:06:29
【问题描述】:

我在.iss 文件中有这一行:

Source: "..\Tcl\*"; DestDir: "{app}\Tcl"; Flags: ignoreversion

打包文件夹Tcl。但它只需要文件夹内的文件,而不需要 Tcl 内的子文件夹。有没有办法将整个文件夹 Tcl 与所有子文件夹和文件一起使用? (不逐行列出所有子文件夹)。

Inno 设置 5.4.2.

【问题讨论】:

    标签: inno-setup


    【解决方案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
    猜你喜欢
    • 2019-09-19
    • 2017-01-08
    • 1970-01-01
    • 2017-12-16
    • 2012-02-22
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    相关资源
    最近更新 更多