我不确定如何描述我是如何“修复”这个/解决它的。
似乎 GetFileVersion() 方法不使用与确定源文件/可安装文件位置的 Inno 功能的其他部分相同的基本路径。
相同的相对路径用于:
// this is for determining what files get put into the install image
[Files]
Source: ..\Build\ForRelease\MyExeName.exe; DestDir: {app}
和
#define SrcApp "..\Build\ForRelease\MyExename.exe"
#define FileVerStr GetFileVersion(SrcApp)
显然不使用相同的机制来解析文件名/路径。所以我解决这个问题的方法是将包含版本信息的 exe 文件复制到另外两个不同的位置(除了 ..\Build\ForRelease)——一个是 hudson 启动进程的位置,另一个是 inoo 脚本所在的路径是。(我懒得弄清楚哪一个是让这一切正常工作的那个。
同样,这在我的批处理文件中可以正常工作,但在 hudson 中却不行。我猜这本质上是与 Inno 工作方式的奇怪交互。