Текущий архив: 2007.09.16;
Скачать: CL | DM;
ВнизProject Version Найти похожие ветки
← →
Igorek © (2007-08-16 18:41) [0]Привет всем,
есть: делфи проект win32 app, в опциях проекта отмечено "Include version information in project"
нужно: скомпилировать проект с коммандной строки (с помощью dcc32.exe) с совсем другой версией
можно: перед компиляцией править файли проекта (dpr, dproj)
пробовал: в файле dproj поменял FileVersion, MajorVer, MinorVer, Release, Build, но оно зараза все равно ставит версию ту, которая указана из Delphi IDE
Прямо мистика какая-то! Уже и файл монитором и регистри монитором следил - безрезультатно.
Контекст проблеми: девелопер из рабочей машини комитит в репозиторий проект, билд сервер его стягивает, коректирует версию и билдит
Но не работает :((
Может кто поможет?
--
Delphi 2007
← →
AZIZE © (2007-08-16 18:51) [1]
> Delphi 2007
лицензионная?
← →
Вася Правильный (2007-08-16 19:15) [2]смотри в *res
← →
Igorek © (2007-08-16 20:14) [3]
> смотри в *res
Там бинарь.. :(
← →
Igorek © (2007-08-16 20:16) [4]
> лицензионная?
Не знаю, дали в конторе...
← →
Igorek © (2007-08-16 20:19) [5]Уточнение - мне надо установить атрибут FileVersion.
← →
antonn © (2007-08-16 20:44) [6]
> лицензионная?
да-да, лицензионная, можно успокоиться
← →
Вася Правильный (2007-08-16 21:06) [7]
> Там бинарь.. :(
ты программист или где?
← →
Вопрошающий (2007-08-17 02:29) [8]Вопрос-дополнение: Можно ли в коде проекта изменить данные VersionInfo? В частности, интересует версии минор, мажор и т.д.
← →
Германн © (2007-08-17 02:58) [9]
> Вопрошающий (17.08.07 02:29) [8]
>
> Вопрос-дополнение: Можно ли в коде проекта изменить данные
> VersionInfo? В частности, интересует версии минор, мажор
> и т.д.
>
См. [7].
← →
Вопрошающий (2007-08-17 06:47) [10]хорошо, перефразирую. Как достучаться до этих свойств?
← →
Igorek © (2007-08-17 09:51) [11]
> Вопрос-дополнение: Можно ли в коде проекта изменить данные
> VersionInfo? В частности, интересует версии минор, мажор
> и т.д.
Не думаю. Код компилируется в файл, которий УЖЕ имеет версию. Всю инфу про версию файла можно получить средствами WinAPI. Изменить версию собственного файла код не может (простим способом).
> ты программист или где?
Ну типа да, но может есть более легкий путь? :)
← →
Anatoly Podgoretsky © (2007-08-17 10:11) [12]
> Можно ли в коде проекта изменить данные VersionInfo? В частности,
> интересует версии минор, мажор и т.д.
Оно для этого и расчитано
> Ну типа да, но может есть более легкий путь? :)
Ну это самый не напряженый путь, но можно купить программиста, если деньги есть, а иначе мучаться.
← →
Igorek © (2007-08-17 10:23) [13]
> Ну это самый не напряженый путь, но можно купить программиста,
> если деньги есть, а иначе мучаться.
Я так понимаю, если оставляется возможность что-то изменить, то вибирается удобний формат. Напр. *.proj имеет формат xml. Тут все гут. xml - стандарт обмена, инструменти для работи с ним имеет почти каждая либа. Но *.res - бинарь. Не думаю, что борланд предполагал, что кто-то будет править бинари. Кроме того в *.proj уже есть FileVersion! Только dcc его игнорирует.
Кроме того *.res можно удалить - Дельфи его пересоздаст. Что наталкивает на мисль - а не удалять ли его перед компиляцией?
← →
Desdechado © (2007-08-17 10:48) [14]В принципе, можно подцепить *.RC, из которого *.RES будет создан. Но *.RES создается в дизайнере автоматом исходя из свойств проекта, которые просто для последующего использования (не компоновщиком, а снова дизайнером) хранятся в виде текста.
← →
Igorek © (2007-08-17 12:09) [15]Вообще решения существуют, но подозреваю, что все они сводятся действ. к правке *.res.
Напр. Change version resource info outside of the IDE - http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_20109408.html
- правда тут надо платить за знания.
Или в Гугле фигурирует программа "Set Version 1.3". Но скачать неоткуда.
> Что наталкивает на мисль - а не удалять ли его перед компиляцией?
dcc32 ругается и не компилит.
С другой сторони res по идее пересоздается если удалить. Значит вопрос в том, как ето сделать из консоли?
> В принципе, можно подцепить *.RC, из которого *.RES будет
> создан.
Поподробнее можно? У меня в проекте нету *.rc.
← →
Desdechado © (2007-08-17 12:36) [16]RC
# include "c:\bc4\include\windows.h"
# include "c:\bc4\include\ver.h"
# define VERSIONINFO_1 1
# define ICON_1 1
1 ICON "Lin.ico"
1 VERSIONINFO
FILEVERSION 12, 10, 0, 0
PRODUCTVERSION 12, 10, 0, 0
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
{
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
VALUE "CompanyName", "qwerty\000\000"
VALUE "FileDescription", "Lin: учет сооружений\000\000"
VALUE "FileVersion", "12.10\000\000"
VALUE "InternalName", "Lin\000\000"
VALUE "LegalCopyright", "Copyright (C) 1996-2002\000\000"
VALUE "OriginalFilename", "Lin.exe\000\000"
VALUE "ProductName", "Комплекс программ\000\000"
VALUE "ProductVersion", "12.10 10 сентября 2002 г.\000\000"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x419, 1251
}
}
Откомпилировать RC -K lin.rc
← →
Anatoly Podgoretsky © (2007-08-17 12:37) [17]> Igorek (17.08.2007 12:09:15) [15]
> У меня в проекте нету *.rc.
Надо добавить
← →
Игорь Шевченко © (2007-08-17 12:43) [18]мы руками делаем .res перед компиляцией проектов dcc32
← →
Igorek © (2007-08-17 12:53) [19]
> мы руками делаем .res перед компиляцией проектов dcc32
О, а чуть подробнее можно? Как происходит процесс?
← →
Игорь Шевченко © (2007-08-17 13:16) [20]Igorek © (17.08.07 12:53) [19]
Процесс происходит bat-файлом:
Сначала sed-ом (это юниксовый редактор) изменяется номер версии в .rc-файле на требуемый после сборки.
Затем выполняется brcc32 создающий из .rc-файла .res-файл.
После чего выполняется собственно компиляция dcc32, проект имеет в своем тексте строку {$R my_project_ver.res} посредством которой ресурс с версией попадает в исполняемый файл.
В bdsproj для этого проекта сброшена галка "IncludeVersionInfo", чтобы не было дублирования ресурсов.
← →
Anatoly Podgoretsky © (2007-08-17 13:22) [21]> Igorek (17.08.2007 12:53:19) [19]
В папке bin две программы brc32 и brcc32
← →
iXT © (2007-08-17 14:06) [22]> [12] Anatoly Podgoretsky © (17.08.07 10:11)
...но можно купить программиста, ...
Анатолий, как это? Может всетаки оплатить его труд? :)
← →
Eraser © (2007-08-17 14:48) [23]
> Игорь Шевченко © (17.08.07 13:16) [20]
> Затем выполняется brcc32 создающий из .rc-файла .res-файл.
afaik, если в проект добавить rc-файл, то ресурс скомпилируется автоматически.
← →
Anatoly Podgoretsky © (2007-08-17 15:49) [24]> iXT (17.08.2007 14:06:22) [22]
Это для тебя оплатить, а для работодателя не так.
Короче - нужен программист.
Страницы: 1 вся ветка
Текущий архив: 2007.09.16;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.054 c