【问题标题】:How to manualy change Version Info in Delphi project如何在 Delphi 项目中手动更改版本信息
【发布时间】:2013-07-16 23:58:29
【问题描述】:

我想在 Delphi 项目中手动设置程序版本,无需 IDE。 当我像这样更改*.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 文件会得到不同的结果?

【问题讨论】:

  • 我认为您应该更改 RC/RES 文件,因为 VERSIONINFO 是 Windows PE-EXE 资源的一部分。我认为 DPROJ 文件仅包含由 delphi 导出到 RC 文件中的值。因此,您应该阅读 MSBuild 是否编译资源(AFARIR 编译资源并且第一个命令调用 brc.exe),如果编译编译 - 编辑文本 ProjectName.RC,如果没有编译二进制 ProjectName.RES PS。请编辑您的问题并在问题文本下方添加带有delphi版本的TAG
  • 您不需要使用/t:Rebuild 强制完全重建吗?
  • 重建没有帮助
  • 使用 SysInternals Process Monitor 在编译期间跟踪哪些文件是红色的。您应该看到链接到 EXE 的 RC 或 RES 文件,并且这些文件应该包含 VERSIONINFO 资源
  • 虽然它与 MSBuild 无关,但您可以使用 this 之类的东西,而不是使用 IDE 的内置版本支持,然后使用预构建事件来更新它。将资源脚本正确添加到代码中,然后会在 Delphi 构建过程中自动为您重新编译它。

标签: delphi msbuild ide delphi-2007 versioninfo


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    • 2022-01-05
    • 2019-02-11
    • 2010-10-20
    相关资源
    最近更新 更多