Delphi RES和交换Git分支

时间:2018-03-19 11:24:21

标签: windows git delphi pascal

我正在使用此功能来获取我的程序的当前版本。 我的问题是当我在Git上签出/切换到我的本地分支时,dwFileVersionLS会被覆盖。

采取这种情况,

我有两个分支,

'Branch1' - GetFileVersion返回'6.7.5.21'

'Branch2' - GetFileVersion返回'6.7.5.25'

我当前的分支是'Branch2',我重建了我的应用程序,这会将我的'Branch2'GetFileVersion增加到'6.7.5.26'。

我在'Branch2'上进行了更改,并检查了我的'Branch1'和GetFileVersion返回'6.7.5.26'。 (因为我没有对这个分支做任何修改,所以应该是'6.7.5.21')

(编辑)此外,当我在'Branch1'上重建我的应用程序时,这会将我的构建版本增加到'6.7.5.22'。

function TGSGGlobal.GetFileVersion: String;
var
  VerInfoSize: Cardinal;
  VerValueSize: Cardinal;
  Dummy: Cardinal;
  PVerInfo: Pointer;
  PVerValue: PVSFixedFileInfo;
begin
     Result := '';
     VerInfoSize := GetFileVersionInfoSize(PChar(Application.ExeName), Dummy);
     GetMem(PVerInfo, VerInfoSize);
  try
    if GetFileVersionInfo(PChar(Application.ExeName), 0, VerInfoSize, PVerInfo) then
      if VerQueryValue(PVerInfo, '\', Pointer(PVerValue), VerValueSize) then
        with PVerValue^ do
          Result := Format('v%d.%d.%d.%d', [
            HiWord(dwFileVersionMS), //Major
            LoWord(dwFileVersionMS), //Minor
            HiWord(dwFileVersionLS), //Release
            LoWord(dwFileVersionLS)]); //Build
  finally
    FreeMem(PVerInfo, VerInfoSize);
  end;
end;

该应用程序包含在Git Reporistory中。

(编辑)我发现切换分支时不会刷新/更新项目.res文件。我需要重新打开我的项目才能使我的分支机构成为最新的版本。

0 个答案:

没有答案