我想在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
文件获得不同的重显?
通常,当您删除MyProject.res文件时,Delphi应该能够从其他项目数据中重新构建它。
我知道IDE有,检查命令行编译器是否也有。在我使用DelphiXE2所做的一些小工作中,我看到了一个cgrb.exe
(CodeGearResourceBuilder)可以做到这一点。
因此,当更新.droj中的版本号时,删除.res并让构建过程重新创建它。