среда, 14 марта 2012 г.

Чтение в FinalBuilder VersionInfo из проекта Delphi 7

  С удивлением обнаружил, что на многих форумах у коллег возникают проблемы как при автоматической сборке проекта через FinalBuilder автоматизировать изменение VersionInfo.
  Для начала внесем ясность где настройки содержаться.
  В Делфи 7 проектах для настроек используется файл .dof, в этот файл IDE сохраняет все настройки проекта. При компиляции на основе этого файла формируется .rc файл - скрипт который уже поступает на вход компилятора ресурсов, на выходе который возвращает .res файл. .res файл будет содержать VersionInfo  и информацию об иконки исполняемого файла. При компиляции dcc( Delphi Pascal Compiler) включает ресурсы в исполняемое приложение (если они указаны в модулях {$R *.res}). Некоторые настройки могут перекрываться .cfg   файлом. cfg файл создается при каждом сохранение проекта из IDE. Dcc проверяет наличие .cfg файла c именем совпадающем с названием проекта и если файл обнаружен использует настройки из него при компиляции. В своем проекте Finalbuilder'а я удаляю перед сборкой этот файл.
  Вернемся к нашим баранам, .dof файл в действительности имеет формат ini файла. А для работы с ini файлами в FinalBuilder есть действия (action)  "Read Ini File" и "Write Ini File". С помощью их мы можем прочесть любые значения из VersionInfo, Version Info Keys (и других) и записать обратно до вызова dcc.

Пример настройки действия чтения MajorVer значения. 

  Но что бы такая схема заработало неодходимо в действие Build Delphi Win32 Project на закладке Project отменить "Load Settings from project File" и "Version Info":

В этом случае при сборке будет использоваться .dof файл.


Комментариев нет:

Отправить комментарий