Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.53 MB
Время: 0.019 c
15-1187364276
MAXH0
2007-08-17 19:24
2007.09.16
Как сравнить две даты?


15-1187267100
vlad_oshin
2007-08-16 16:25
2007.09.16
форум против компьютера . в шахматы.


2-1187868785
Галинка
2007-08-23 15:33
2007.09.16
Панель инструментов из DLL


15-1187508695
Kostafey
2007-08-19 11:31
2007.09.16
Парад ярлыков


2-1187689604
em240
2007-08-21 13:46
2007.09.16
Обработка результата нажатия кнопки