【问题标题】:Skip non-existing source files when compiling installer in Inno Setup在 Inno Setup 中编译安装程序时跳过不存在的源文件
【发布时间】:2020-03-18 22:43:22
【问题描述】:

[Files] 部分,我必须通过尝试编译一个不存在的文件来实现这一点,编译器不会失败并遵循其进程。

例如在这段代码中:

[Files]
Source: "D:\{#pais}\{#modulo}\IMG\image.png"; \
    DestDir: "{userdocs}\Qlik\Sense\Content\Default\{#senseAppDir}\IMG\"; \
    Flags: ignoreversion  

如果文件image.png 不存在,我希望编译器跳过它并继续。

感谢您的宝贵时间!

【问题讨论】:

  • 我们在您的问题中遗漏了最重要的部分...粘贴您的 inno 规范文件的一些代码作为入门。您可以通过编辑自己的问题来添加它。不要粘贴在评论部分要求的信息!还要提及您正在使用的 inno 设置版本以及其他相关软件需要帮助您的版本(例如 OS 平台)。您可以使用黄色框的“>”将错误日志粘贴到默认信息下方。
  • 例如在这段代码中: Source: "D:\{#pais}\{#modulo}\IMG\image.png"; DestDir: "{userdocs}\Qlik\Sense\Content\Default\{#senseAppDir}\IMG\";标志:ignoreversion 如果文件“image.png”不存在,编译器忽略错误并运行。

标签: inno-setup


【解决方案1】:

有两种选择:

  1. 使用skipifsourcedoesntexist flag:

    Source: "D:\{#pais}\{#modulo}\IMG\image.png"; \
        DestDir: "{userdocs}\Qlik\Sense\Content\Default\{#senseAppDir}\IMG\"; \
        Flags: ignoreversion skipifsourcedoesntexist
    
  2. 使用preprocessor directive #ifexist:

    [Files]
    #ifexist "D:\" + pais + "\" + modulo + "\IMG\image.png"
    Source: "D:\{#pais}\{#modulo}\IMG\image.png"; \
        DestDir: "{userdocs}\Qlik\Sense\Content\Default\{#senseAppDir}\IMG\"; \
        Flags: ignoreversion 
    #endif
    

【讨论】:

  • 嗨,马丁!你的回答很好用!!非常感谢!!
  • 看来您需要 15 的声望才能标记答案。他只有 6 个。
  • @Andrew One 需要 15 声望才能投票。要接受,不需要声誉。
  • 那很烦他们不 ✅!!这发生在我身上。也许应该有一个设施可以在一段时间后通过投票来勾选答案?
猜你喜欢
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多