【问题标题】:File not found in Setup section on InnoSetup script在 InnoSetup 脚本的设置部分中找不到文件
【发布时间】:2020-04-03 18:25:54
【问题描述】:

我有一个多年来一直使用的 InnoSetup 脚本,但它突然停止工作,特别是在 [Setup] 部分的这一行:

WizardImageFile={src}\..\..\images\InstallBanner.bmp

报错是:

Compiler Error!
Line 47: Could not read "C:\projects\xxxx\installer\{src}\..\..\images\installbanner.bmp".
Error: The system cannot find the path specified.

我注意到两个潜在的问题,{src} 仍然在报告的文件路径中,并且文件名都是小写的。除了这两个问题,文件名正确,文件存在。

我是不是错误地使用了 {src} 常量,而这以前只是巧合,还是这是一个更新引入的错误?

当前运行 6.0.2。我知道 6.0.4 已发布,但目前无法安装,并且没有注意到修订历史记录中提到的此类问题。

【问题讨论】:

    标签: inno-setup


    【解决方案1】:

    您不能在WizardImageFile 中使用constants。这没有道理。常量在运行时评估。在编译时读取 WizardImageFile。此外,{src} 指的是安装开始的路径。如果您只构建安装程序,它会如何评估?

    如果它曾经工作过,您必须在路径上的某处有字面名称为 {src} 的子文件夹,您正在编译安装程序。

    【讨论】:

    • 那么WizardImageFile中使用的原点或基本路径是什么?另外,我从来没有一个文件夹名为{src}
    • 可能是您的.iss 文件所在的文件夹。在您的情况下,它是C:\projects\xxxx\installer,您可以从错误消息中看到。
    • 我想到了,但如果我删除 {src}C:\projects\xxxx\installer 也不再是路径的一部分。我假设它只是在这种情况下使用当前工作目录
    • 对我来说,WizardImageFile 相对于 iss 文件进行解析。无论如何,这是一个不同的话题。如果你想问如何解决WizardImageFile相对于iss文件,那么你问错了问题。我已经回答了你的问题:)
    【解决方案2】:

    正如@MartinPrikryl 所说,{src} 和其他常量不能使用,因为它们是在运行时评估的。可以使用定义,{#SourcePath} 定义作为相对于脚本位置的起始路径

    WizardImageFile={#SourcePath}\..\..\images\InstallBanner.bmp
    

    【讨论】:

    • 如果您希望这是一个有效的答案,您应该将问题更改为询问“如何相对于iss 文件解析WizardImageFile
    • 当我创建问题时,我没有意识到这是我需要的,因为我在以前的版本中出于某种原因工作过
    猜你喜欢
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多