Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];

Вниз

Как увеличить build number?   Найти похожие ветки 

 
kull   (2003-12-30 15:20) [0]

Помогите кто-нить ко сталкивался...

У меня осуществляется автоматическая сборка релиза: билдится проект, собирается инсталяшка, и т.п.
А как сделать чтоб номер билда у exe-шника увеличивался?

Я же не из под Delphi IDE билдю, а прямо при помоши dcc32.exe...


 
VMcL   (2003-12-30 15:27) [1]

>kull © (30.12.03 15:20)

А зачем? Если ничего не менялось, то сборка та же. А если менялось, то наверное ж в Delphi IDE, а там птица есть по типу "Autoincrement build number".


 
Юрий Зотов   (2003-12-30 15:30) [2]

Самое простое - один раз компильните из-под среды, после чего билд пропишется в ресурсы, а уже их будет потом цеплять DCC.


 
VMcL   (2003-12-30 15:31) [3]

2 Юрий Зотов:
только не "компильните", а билданите :))


 
kull   (2003-12-30 15:48) [4]


> Юрий Зотов ©

Сейчас я так и делаю...
Но дело в том что исходники при автоматической сборке вытаскиваются из CVS, а потом билдятся.

Но для каждого билда:
1. вытаскивать последнюю ревизию,
2. билдить
3. класть изменненный .res файл обратно в CVS.
4. Наконец запустить автоматическую сборку

Все это весьма утомительно. Вот если бы все эти шаги можно было прописать автоматически...


 
Vuk   (2003-12-30 15:59) [5]

Как вариант. Написать программку, которая будет генерировать исходный файл ресурса с нужной информацией о версии, а сборку делать при помощи Make.


 
Юрий Зотов   (2003-12-30 16:05) [6]

Посмотрите файл DOF (секция [Version Info]) и топик DOF files в справке.

Похоже, что останется только написать простенькую программу, увеличивающую номер билда и вставить ее в батник перед DCC.


 
kull   (2003-12-30 17:39) [7]

OK! Спасибо!


 
kull   (2004-01-05 13:27) [8]

Либо я что-то не понимаю, либо - одно из двух...

Если меняю номер билда в DOF файле, то никаких изменений при билде. Видно номер билда он берет из *.res файла. А вот как в нем его (этот номер) увеличить?...


 
alex_***   (2004-01-05 13:34) [9]

res файл пересоздается. из него не берется ничего


 
kull   (2004-01-05 13:45) [10]


> alex_*** ©


Нет. Если удалить DOF файл, все прекрасно соберется.


 
alex_***   (2004-01-05 14:01) [11]

а где будешь хранить инфу о версии?


 
kull   (2004-01-05 14:12) [12]

Дык она в ресурсе и хранится...


 
alex_***   (2004-01-05 14:15) [13]

)) а ресурс по каким данным тогда создается?


 
kull   (2004-01-05 14:21) [14]

Данные для создания res-файла берутся из dof-файла, а при билде используется res-файл.

Но при открытии проекта в Delphi, если есть файл ресурса, то данные о версии берутся из него, а потом при сохранении проекта сохраняются и в dof и в res.


 
dsgnr   (2004-01-05 14:26) [15]

Я эту проблему смог обойти только одним способом. В итоге никаких проблем не имею с проектом, включающем ~100 exe и dll. Привожу упрощенный вариант.

1. Отключаешь в IDE включение VersionInfo для своего проекта.

2. Делаешь .rc файл с информацией о версии, что то вроде такого (ver.rc):

#define MODULEDESCR "My Module\0"
#define PRODNAME "My Product\0"
#define COMPANYNAME "My Company\0"
#define COPYRIGHT "(C) Copyright 1900 My Comp.\0"
#define TRADEMARKS "My is a registered trademark of My Company. My(TM) is a trademark of My Company.\0"
#define STRPRODVER "1.0.0.0\0"
#define STRFILEVER "1.0.0.0\0"
#define PRODVER 1,0,0,0
#define FILEVER 1,0,0,0
#define COMMENTDESCR "Built by Script\0"
#define LANDID 0x422
#define STRLANGID "042204e3"

1 VERSIONINFO
FILEVERSION FILEVER
PRODUCTVERSION PRODVER
FILEFLAGSMASK 0x17L
FILEFLAGS 0x0L
FILEOS 0x4L
FILETYPE 0x0L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK STRLANGID
BEGIN
VALUE "FileDescription", MODULEDESCR
VALUE "FileVersion", STRFILEVER
VALUE "LegalCopyright", COPYRIGHT
VALUE "LegalTrademarks", TRADEMARKS
VALUE "ProductName", PRODNAME
VALUE "ProductVersion", STRPRODVER
VALUE "CompanyName", COMPANYNAME
VALUE "Comments", COMMENTDESCR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", LANDID, 1251
END
END


3. В файле своего проекта вставляешь
{$R "ver.res"}

4. Перед компиляцией проекта включаешь компиляцию ресурсного модуля
brcc32 ver.rc

5. Ну а для автоматического инкремента номера версии/билда - делаешь программку, которая будет тебе менять информацию в .rc файле - благо это не сложно - и ее запуск тоже вставляешь в батник.


 
kull   (2004-01-05 14:31) [16]


> dsgnr © (05.01.04 14:26) [15]

Да... Похоже прийдется с ресурсником поморочиться.

Спасибо! Похоже это то что надо...
Буду разбираться... :)


 
Юрий Федоров   (2004-01-05 14:35) [17]

Я делал так-же как
dsgnr © (05.01.04 14:26) [15] Если кто знает более изящное решение - огласите, плиз


 
REA   (2004-01-05 14:45) [18]

А вот еще хочу, чтобы во всех моих dll номер версии проекта автоматом менялся (не номер версии самой dll). Как это сделать?


 
kull   (2004-01-05 14:54) [19]

Прошу прощения. А никто не поможет ссылочкой на какой нибудь редактор ресурсов...


 
dsgnr   (2004-01-05 15:09) [20]


> kull © (05.01.04 14:54) [19]

Это зачем? Пишешь .rc в текстовом редакторе и компилишь его в .res. Или я чего-то не понял?


 
alex_***   (2004-01-05 15:17) [21]

[19]: Restorator forever


 
kull   (2004-01-05 16:19) [22]

Просто я никогда не писал rc скрипты, и не представляю как это руками делается.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.012 c
14-49720
Knight
2003-12-25 11:34
2004.01.16
Люди, поможите кто может с переводом...


7-49794
Геннадий
2003-11-03 15:50
2004.01.16
Детектирование режима работы монитора: оконный/полноэкранный


14-49700
Rafe
2003-12-25 18:49
2004.01.16
Италия очень напоминает Россию :)


3-49415
safo
2003-12-19 10:29
2004.01.16
компоненты zeos


1-49629
rolex
2004-01-04 18:40
2004.01.16
Как в ListBox1 в каждую строчку записать имена файлов, из папки F





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский