如何在Delphi项目中手动更改版本信息

时间:2013-07-18 06:58:02

标签: delphi msbuild ide delphi-2007 versioninfo

我想在没有IDE的情况下在Delphi项目中设置一个版本的程序。 当我像这样更改*.dproj文件时:

  <VersionInfo>
    <VersionInfo Name="IncludeVerInfo">True</VersionInfo>
    <VersionInfo Name="AutoIncBuild">False</VersionInfo>
    <VersionInfo Name="MajorVer">1</VersionInfo>
    <VersionInfo Name="MinorVer">2</VersionInfo>
    <VersionInfo Name="Release">3</VersionInfo>
    <VersionInfo Name="Build">456</VersionInfo>
    <VersionInfo Name="Debug">False</VersionInfo>
    <VersionInfo Name="PreRelease">False</VersionInfo>
    <VersionInfo Name="Special">False</VersionInfo>
    <VersionInfo Name="Private">False</VersionInfo>
    <VersionInfo Name="DLL">False</VersionInfo>
    <VersionInfo Name="Locale">1049</VersionInfo>
    <VersionInfo Name="CodePage">1251</VersionInfo>
  </VersionInfo>
  <VersionInfoKeys>
    ...
    <VersionInfoKeys Name="FileVersion">1.2.3.456</VersionInfoKeys>
    ...
    <VersionInfoKeys Name="ProductVersion">1.2.3.456</VersionInfoKeys>
  </VersionInfoKeys>

然后使用MSBuild通过CMD构建项目:

call rsvars.bat
MSBuild.exe blabla.dproj /p:configuration=release

我在文件属性

中获得了带有空版本信息的*.exe文件

但是当我在IDE中设置版本并使用相同的MSBuild调用构建时,一切正常。 *.exe拥有版本信息

问题:为什么我会使用SAME *.dproj文件获得不同的重播?

1 个答案:

答案 0 :(得分:1)

通常,当您删除 MyProject.res 文件时,通常Delphi应该能够从其他项目数据中重新构建它。

我知道IDE会这样做,检查命令行编译器是否也这样做。在我用Delphi XE2做的小工作中,我见过一个cgrb.exe(Code Gear Resource Builder)就是这样做的。

因此,在更新.dproj中的版本号时,请删除.res并让构建过程重新创建它。