首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Inno安装程序无法在AppVeyor上使用掩码查找图像文件

Inno安装程序无法在AppVeyor上使用掩码查找图像文件
EN

Stack Overflow用户
提问于 2020-10-03 17:37:45
回答 1查看 110关注 0票数 2

我们有一个开放源码软件项目,我试图升级到Inno安装6.0.5。当我在本地编译构建脚本时,它会像预期的那样工作。但是,当我试图通过AppVeyor构建它时,它找不到文件。我都试过了:

  1. 使用完整路径(使用5.6.1): #define ExtractFileDir(ExtractFileDir( SourcePath )) + "\bin\“#define SourcePath +包括\”定义GraphicsDir SourcePath+“图形\.WizardSmallImageFile={#GraphicsDir}Rubberduck.Duck.Small.55x55.bmp,\ {#GraphicsDir}Rubberduck.Duck.Small.64x68.bmp,\ {#GraphicsDir}Rubberduck.Duck.Small.83x80.bmp,\ {#GraphicsDir}Rubberduck.Duck.Small.92x97.bmp,\ {#GraphicsDir}Rubberduck.Duck.Small.110x106.bmp,{#GraphicsDir}Rubberduck.Duck.Small.119x123.bmp,\ {#GraphicsDir}Rubberduck.Duck.Small.138x140.bmp WizardImageFile={#GraphicsDir}Rubberduck.Duck.164x314.bmp,#Rubberduck.Duck.192x386.bmp,#GraphicsDir}Rubberduck.Duck.246x459.bmp,Rubberduck.Duck.273x556.bmp,#GraphicsDir}Rubberduck.Duck.328x604.bmp,#GraphicsDir}Rubberduck.Duck.355x700.bmp
  2. 使用通配符: #define ExtractFileDir(ExtractFileDir( SourcePath )) + "\bin\“#define SourcePath +包括\ #define SourcePath+ "Graphics\”#define GraphicsDir + "WizardImageFiles\“#+ "WizardSmallImageFiles\”.WizardSmallImageFile={#WizardSmallImageFilesDir}Rubberduck.Duck.Small.*.bmp WizardImageFile={#WizardImageFilesDir}Rubberduck.Duck.*.bmp

这些文件存在于预期位置,是有效的位图。但是,在AppVeyor上我们得到了以下错误:

代码语言:javascript
复制
Creating output directory: C:\projects\rubberduck\Rubberduck.Deployment\InnoSetup\Installers
Reading file (LicenseFile)
Reading file (WizardImageFile)
   File: C:\projects\rubberduck\Rubberduck.Deployment\InnoSetup\Graphics\WizardImageFiles\Rubberduck.Duck.*.bmp
Error on line 81 in C:\projects\rubberduck\Rubberduck.Deployment\InnoSetup\Rubberduck.Installer.Build.iss: Could not read "C:\projects\rubberduck\Rubberduck.Deployment\InnoSetup\Graphics\WizardImageFiles\Rubberduck.Duck.*.bmp".
Error: The filename, directory name, or volume label syntax is incorrect.
Compile aborted.

我们使用巧克力安装Inno安装。我们发现必须显式指定版本;否则,它将使用5.5.9而不是6.0.5:

原件:

代码语言:javascript
复制
  - cinst innosetup -version 5.6.1

修改:

代码语言:javascript
复制
  - cinst innosetup --version=6.0.5

完整的AppVeyor控制台输出(包括几条实用化消息)可以看到这里

完整的ISS构建脚本可以看到这里

完整的应用程序可以看到这里

为什么它会在当地起作用,但在承销商身上却失败了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-05 07:43:55

尽管您声明不是这样,但是您仍然使用5.5.9:

编译器引擎版本: Inno安装程序5.5.9 (u)

支持Wizard*ImageFile指令中的通配符,因为只支持Inno安装5.6

尽管您的脚本似乎安装了6.0.5。由于它是一个不同的主要版本,所以它处于不同的路径,C:\Program Files (x86)\Inno Setup 6\而不是C:\Program Files (x86)\Inno Setup 5\AppVeyor附带5.5.9预装,这可能是为什么,当运行构建脚本的时候,5.5.9会被执行。尝试使用iscc的完整路径以确保您正在运行Inno安装程序的正确主版本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64187124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档