Как заставить скрипт предварительной сборки запускаться при каждой компиляции - PullRequest
5 голосов
/ 01 июня 2011

В настоящее время мы используем Delphi 2009 и GIT для разработки приложения. Мы настроили сценарий предварительной сборки, чтобы сгенерировать номер версии и идентификатор сборки, используя информацию из git, и скомпилировать ее как ресурс, включенный в проект. Проблема в том, что этот скрипт не запускается при обычной компиляции. Это означает, что другие разработчики могут получить несоответствие между фактическим номером версии и номером в ресурсе (особенно при переключении веток в git).

Поскольку мы используем наше программное обеспечение для выполнения некоторых критических вычислений, мы хотели бы использовать этот идентификатор сборки для воспроизведения вычислений и отслеживания проблем.

Кроме попыток заставить моих разработчиков часто нажимать shift-F9, как я могу гарантировать, что сценарий предварительной сборки запускается при необходимости (в идеале при каждой компиляции)?

Jason

ОБНОВЛЕНИЕ: Это правда, что скрипт перед сборкой запускается при каждой компиляции. Проблема заключалась в том, что я ожидал получить другой результат после нажатия клавиши F9 после создания тега в git, хотя код не изменился.

Ответы [ 2 ]

3 голосов
/ 01 июня 2011

Мы решили аналогичную проблему, написав собственный плагин IDE, который использует интерфейс IOTAIDENotifier50.В частности, с помощью метода BeforeCompile, чтобы протестировать некоторые необходимые настройки проекта, а также сгенерировать динамическую информацию о версии (ресурс VERSIONINFO).Он вызывается для каждого типа сборки (компиляции и сборки).Мы также генерируем уникальный серийный номер exe и регистрируем все, что помогает нам отслеживать проблемы и похоже на ваш скрипт.Для полноты мы сделали это только в Delphi 2007 и Delphi XE.

0 голосов
/ 02 июня 2011

Действия перед сборкой выполняются перед каждой компиляцией.

В комментарии вы указываете, что действия иногда не запускаются при нажатии клавиши F9.Это имеет смысл, потому что F9, или Run, вызывает компиляцию только в том случае, если считается, что источник изменился.

Плагин уведомителя BeforeCompile будет вести себя точно так же.Ваше решение состоит в том, чтобы убедиться, что вы компилируете перед запуском, используя Ctrl + F9.

...