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

标签 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具有版本信息

问题:为什么我使用相同的*.dproj文件会得到不同的重新使用?

最佳答案

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

我知道IDE可以,请检查命令行编译器是否也可以。在我使用Delphi XE2所做的小工作中,我看到了一个cgrb.exe(代码齿轮资源生成器)可以做到这一点。

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

关于delphi - 如何在Delphi项目中手动更改版本信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17716608/

相关文章:

msbuild - 通过 MsBuildProj 文件转换多个项目的多个配置文件

c# - 是否有任何免费的 C++ 和/或 C# 编译器可以在支持 Android 的平板电脑上运行?

perl 编辑器/IDE 类似于 C 的源代码洞察力

delphi - ini 文件部分到 stringgrid

ios - Delphi4 XE/iOS/读取XML文件/

c# - 有没有办法覆盖 AssemblyInfo.cs 中的属性(例如 AssemblyVersionAttribute)?

java - Eclipse 删除 AndroidManifest.xml 中的 Activity ?

delphi - 从 Delphi 访问 BcdStore

delphi - 打印带有背景颜色的 Richedit

performance - MSBUILD (VS2010) 在某些机器上非常慢