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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.042 c
2-1187952310
Adios
2007-08-24 14:45
2007.09.16
вопрос про местоположение формы


2-1187766089
stanislav
2007-08-22 11:01
2007.09.16
Integer to widechar


6-1169573613
i-am-vladko
2007-01-23 20:33
2007.09.16
Indy


2-1187532488
DelphiKettle
2007-08-19 18:08
2007.09.16
WM_CONTEXTMENU


15-1187506992
rol_intal@mail.ru
2007-08-19 11:03
2007.09.16
кабель





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский