2010-07-07 61 views
10

是否可以从代码设置“版本信息”设置?我想在不使用项目选项对话框的情况下为“注释”属性设置版本编号和值。从代码中设置Delphi 7项目“版本信息”?

+1

的源代码,你可以在此详细一点?你真的**想在编译后改变你的EXE版本吗?您的应用程序可能会因为某些Mallware而感到困惑!或者你想在编译时只更改一次?或者,也许编译后立即? – 2010-07-07 13:09:55

+0

我不想在编译后改变它。我只想在代码中设置编译值。 – pantarhei 2010-07-07 14:03:45

回答

4

我会建议使用一个构建工具,像FinalBuilder(我用了很多),它可以根据适当的方案为你做到这一点。然后你知道构建选项都是你想要的,你的数字会适当增加,你可以做一些事情,比如上传到FTP站点等等。在我的脚本中,内部版本号从EXE到安装程序和全部包含在内。

+0

+1,Visual Build Pro也适用于此。 http://www.kinook.com/VisBuildPro/ – 2010-07-07 13:39:26

10

而不是编辑IDE为您管理的二进制RES文件,您可能会发现维护包含version-info resource的文本RC文件更容易。编写资源脚本文件,然后将其包含在与这样的线项目:

{$R resources.res resources.rc} 

你应该删除从项目的DPR文件{$R *.RES}行,否则你会得到重复的版本资源。不要将您的项目名称用作自定义资源文件的名称;该名称由IDE保留。

IDE管理的资源文件还包含项目图标,因此您还需要将其包含在资源脚本中。

您可以手动编辑资源脚本,也可以编写程序对其进行编辑或重新生成它作为构建步骤之一。

使用文本资源脚本具有附加的副作用,它可以更容易地跟踪您使用的任何源代码管理系统(如CVS)中的更改。

+2

+1我们目前在.bdsproj和.res文件中使用版本信息,这是一场噩梦。它使合并麻烦。我们有一个分支创建者,可以更改版本信息并将其复原为svn,所以这不是问题,但是当我们稍后尝试合并时,我们会付出沉重的代价。 99%的更改是.bdsproj和.res文件!我们将转而采用.rc方法。 – 2010-07-07 13:43:47

+3

只需在项目选项中禁用版本信息即可,并且不会出现重复资源错误,同时可以设置在默认.res文件中设置的其他数据。 – 2010-07-07 13:59:50

+3

请注意,当您移除{$ * .res}时,您还会丢失项目选项设置的主应用程序图标,并且需要使用.rc文件自己添加一个。 – 2010-07-07 14:04:47

4

你必须为此编写向导。退房IOTAProjectOptionsD7IOTA.HLP文件,ToolsAPI单元和this thread

+2

为什么downvote?这个答案实际上提供了对于提出的问题的最直接的答案!好的,事实证明这个问题的海报是在其他事情之后,但这个答案不值得为此付出代价!如果*问题*应该是什么。 (StackOverflow应该为这个问题提供两个排名:1为问题本身,另一个为问题提出的程度如何/如何清楚/多么接近实际问题需要回答等等) – Deltics 2010-07-08 02:11:09

+0

可能我的解决方案*看起来太复杂:-)然而,任一个IDE都独占地维护项目资源,或者用户必须手动完成。这是无缝集成的唯一途径。 – 2010-07-11 00:53:34