我有一个Delphi XE项目,我正在尝试在使用MSBuild构建之前更改程序的版本号。版本号信息位于DPROJ文件中,但如果我更改这些值,则版本号不会更改。我认为原因是当您在IDE中更改版本号时,Delphi会将更改保存到DPROJ和RES文件中。
有没有办法使用DPROJ文件中的更改从命令行编译RES文件?我发现这个question建议将版本号保存在INC文件中并将其包含在项目中,但与仅在DPROJ中进行更改相比,这会感觉更复杂。
答案 0 :(得分:4)
答案 1 :(得分:2)
我使用FinalBuilder来处理版本信息。是不是剥离版本与您的Delphi捆绑在一起?如果没有,那绝对物有所值。发布一键动作。
答案 2 :(得分:2)
我最终用answer解决了我的问题。首先,我在项目选项中取消选中“在项目中包含版本信息”,并添加带有虚拟数据的VersionInformation.rc。当我的构建批处理文件被执行时,它会生成正确的RC文件,并且因为该RC文件被添加到Delphi项目中,所以MSBuild使用所包含的信息来构建可执行文件。
答案 3 :(得分:0)
是的,你是对的。 Delphi将版本号保存在项目文件和资源文件中。遗憾的是,资源文件的结构有点复杂,因此以编程方式更新并不容易。当我遇到这种需求时,我最终使用了一个工具“SetVersion.exe”,它为我完成了这项工作。它也可能对你有所帮助。请参阅this link。
修改强>
实际上现在我记得,我使用了一个名为“ChangeRes.exe”的不同工具,它工作顺利(但它不是免费的)。您可以尝试两种方式,看看哪种方式适合您。
答案 4 :(得分:-1)
几年前,我已经编写了一个脚本来使用ruby和rake来构建和增加内部版本号。非常容易使用。
构建完成后,脚本会调用Inno Setup并生成新的安装程序。