2013-07-18 80 views
2

我想在沒有IDE的情況下手動設置Delphi項目中的程序版本。 當我改變*.dproj文件是這樣的:如何手動更改Delphi項目中的版本信息

<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> 

,然後通過CMD用的MSBuild建設項目:

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

我得到*.exe文件空版本信息在文件屬性

但當我在IDE中設置版本並使用相同的MSBuild調用構建版本時,一切正常。 *.exe有版本信息

問題:我爲什麼會得到不同的resuslt具有相同*.dproj文件?

+1

我認爲你應該改變RC/RES文件,因爲VERSIONINFO是Windows PE-EXE資源的一部分。 我認爲DPROJ文件只包含由delphi導出到RC文件中的值。 所以你應該閱讀如果MSBuild編譯資源(AFARIR它和第一個命令調用brc.exe),如果它 - 編輯文本「ProjectName.RC」,如果它不,然後編輯二進制'ProjectName.RES' PS。請編輯您的問題,並在問題文本 –

+1

下面添加帶有delphi版本的TAG您是否需要使用'/ t:Rebuild'強制完成重建? –

+0

重建不會幫助 –

回答

1

通常,當您刪除MyProject.res文件時,通常Delphi應該能夠從其他項目數據重新構建它。

我知道IDE做的,檢查命令行編譯器是否也。在我使用Delphi XE2做的小工作中,我看到了一個cgrb.exe(Code Gear Resource Builder)。

因此,更新.dproj中的版本號時,請刪除.res並讓構建過程重新創建它。

相關問題