В Delphi 2007 я легко могу получить информацию о версии текущего проекта, используя следующие вызовы ToolsAPI:
procedure Test;
var
ProjectOptions: IOTAProjectOptions;
Project: IOTAProject;
Major: Variant;
Minor: Variant;
Release: Variant;
Build: Variant;
begin
// GxOtaGetCurrentProject is a function in GExpert's GX_OTAUtils unit that returns the current IOTAProject
Project := GxOtaGetCurrentProject;
if Assigned(Project) then begin
ProjectOptions := Project.ProjectOptions;
if Assigned(ProjectOptions) then begin
Major := ProjectOptions.Values['MajorVersion'];
Minor := ProjectOptions.Values['MinorVersion'];
Release := ProjectOptions.Values['Release'];
Build := ProjectOptions.Values['Build'];
end;
end;
end;
В Delphi 10.2.3 это всегда будет возвращать версию 1.0.0.0 независимо от фактического номера версии. Это «простой» случай: приложение VCL.
Я также попробовал значение "Keys", которое возвращает указатель TStrings. Там я также получаю строку FileVersion, но это всегда "1.0.0.0".
Полагаю, это как-то связано с поддержкой различных платформ и конфигураций, но я не смог найти никакой документации о том, как это должно работать сейчас. Я также искал в ToolsAPI.pas «версию» и «выпуск», но ничего подозрительного не обнаружилось.
Любые советы о том, как я могу получить информацию о версии в Delphi 10.2?