2013-07-18 10 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> 

를 다음의 MSBuild와 CMD을 통해 프로젝트를 빌드 :

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

을 내가 파일 속성에 빈 버전 정보와 *.exe 파일을 가져

그러나 IDE에서 버전을 설정하고 동일한 MSBuild 호출을 사용하여 빌드하면 모든 것이 정상적으로 작동합니다. *.exe는이 버전 정보

질문 : 왜 같은 *.dproj 파일을 다른 resuslt받을 수 있나요?

+1

VERSIONINFO는 Windows PE-EXE 리소스의 일부이므로 RC/RES 파일을 변경해야한다고 생각합니다. DPROJ 파일에는 delphi에서 RC 파일로 내 보낸 값만이 들어 있다고 생각합니다. 그래서 MSBuild가 AFARIR을 컴파일하고 첫 번째 명령이 brc.exe를 컴파일하고 텍스트 -2'PartName.RC'을 편집하고 그렇지 않으면 바이너리'ProjectName.RES'PS를 편집해야합니다. 질문을 편집하고 질문 텍스트 아래에 delphi 버전의 TAG를 추가하십시오. –

+1

'/ t : Rebuild'를 사용하여 강제로 다시 빌드 할 필요가 없습니까? –

+0

Rebuild가 도움이되지 않습니다. –

답변

1

일반적으로 MyProject.res 파일을 삭제할 때 일반적으로 Delphi는 다른 프로젝트 데이터에서 다시 재구성 할 수 있어야합니다.

IDE가 알고있는 것처럼 명령 줄 컴파일러도 확인하십시오. Delphi XE2로 수행 한 작은 작업에서 나는 단지 cgrb.exe (코드 기어 리소스 빌더)을 보았습니다.

.dproj에서 버전 번호를 업데이트 할 때 .resource를 삭제하고 빌드 프로세스를 다시 만듭니다.