ПредишенСледващото

Автоматизация на монтажа и контрол на версиите на проекта

Какво прави той.

По време на разработването на проекти, група от програмисти, обща задача е да се изгради на следващата версия на проекта, по-нататъшно изпитване на тази версия, а след това повторно сглобяване и т.н. Какво ще се съберат друга версия на който е отговорен за монтажа ще трябва да се вземе най-новата версия на файла, за да се увеличи броят на версията, изграждане на проекта, и ако всичко върви добре поставени на изпитание, в определено място готов файл или файлове. Като правило, което трябва да се запази историята на версията. Тя трябва да бъде инсталиран с Delphi библиотеки - съответно на прехода към нова версия на Delphi или някоя от библиотеките може да доведе до много проблеми: изграждане на новата версия може да бъде неизползваема и трябва да се върне към по-стара версия на Delphi и др

Като цяло, това е една история за това как можете да автоматизирате процеса на сглобяване и изпращане версии.

Къде и как да се изгради по проекта.

Искам да си направите резервация наведнъж, всички от следните рецепти работят в Делфи 6 (Update1, Update2).

Ако ние говорим за автоматичен монтаж, курсът ще използвате командния ред. В стандарта Делфи има две програми, които могат да бъдат използвани за събиране на проекти: dcc32 и да направи. И двамата са на път $ Delphi \ Bin.

DCC32 събира един проектен файл се предава като команден ред. Останалите параметри (библиотечни алеи, опции за съставяне и т.н.), също могат да бъдат определени от командния ред или във файл в dcc32.cfg $ Delphi \ Bin.

Уверете се, събира всички проекти, посочени в грим файл (в действителност, той последователно призовава dcc32 за тях). Освен това, в обикновен текстов файл, можете да редактирате удобно пътя до библиотеката, както и опции за съставяне.

Така че, да бъде създадена директория, където се намират файловете. например

Декриптира: Delphi + Актуализация 6 2 1 + RTL актуализация.

Копиране в Делфи от съответния директорията, в същата директория следните файлове:
BIN \ brc32.exe
BIN \ brcc32.exe
BIN \ dcc32.cfg
BIN \ DCC32.EXE
BIN \ lnkdfm60.dll
BIN \ make.exe
BIN \ rlink32.dll
BIN \ rw32core.dll
ИЗТОЧНИК \ *. *

Общо около 30 милиона, а по принцип, това е достатъчно, но за простота и скорост също така да копирате директория «ВНОС» и «LIB». Оказва около 110м, но които сега се занимават с такива размери? Остава да се определи dcc32.cfg файл:
-aWinTypes = Windows; WinProcs = Windows; DbiProcs = BDE; DbiTypes = BDE; DbiErrs = BDE
-UC: \ Delphi \ D6U2RTL1 \ Lib; C: \ Delphi \ D6U2Rtl1 \ Bin
-IC: \ Delphi \ D6U2RTL1 \ Lib

Всичко това може да се записва на диска, и винаги се системата да се изгради проекта на Delphi в продължение на 5 минути на всеки компютър.

Delphi ще създаде в проект за съставяне на помощта на нашия съставител: Delphi-Нова Applisation. След това го съхранява C: \ Delphi \ TestVer \ testVer.dpr. Има също запазим проекти група файл (например, ръководител на проекта - «Save Prgect Group като»). Сега дясната линия в testver.bpg на файла

Ние компилирате нашия проект:

Така че, ако сте направили всичко правилно, трябва да сте получили Testver.exe

условия за добър живот

Не ми харесва, когато всички файлове в една купчина и следователно по-малко модернизиране структурата на директориите -sozdadim отделни папки за изходния код, събрани двоични файлове и модули. Съответно SOURCE, DCU, BIN. C: \ Delphi \ TESTVER \ BIN
C: \ Delphi \ TESTVER \ DCU
C: \ Delphi \ TESTVER \ ИЗТОЧНИК \
C: \ Delphi \ TESTVER \ ИЗТОЧНИК \ TestVer.bpg
C: \ Delphi \ TESTVER \ ИЗТОЧНИК \ TestVer.dpr
C: \ Delphi \ TESTVER \ ИЗТОЧНИК \ TestVer.res
C: \ Delphi \ TESTVER \ ИЗТОЧНИК \ Unit1.dfm
C: \ Delphi \ TESTVER \ ИЗТОЧНИК \ Unit1.pas

= EXE изход директория
# -I

= Включване на директории
# -N

= DCU изход директория
#-W = предупредителни съобщения Изходни
# -Q = Quiet компилация
# -CG = цел GUI
DCC = $ (ROOT) \ бен \ dcc32.exe $ ** -В -e $ (BIN) -п $ (DCU) -u $ (LIB) -w -q -CG

TestVer.exe: $ (ProjectPath) \ Източник \ TestVer.dpr
CD $ (ProjectPath) \ Източник
$ (DCC)

Сега можете да събирате:

Свързване на допълнителни библиотеки.

За да започнете, нека да включва информация за версията на файла в проекта и ще го покаже. В Делфи, направете следния проект-Options Когато включите тази опция, Delphi генерира автоматично компилиран ресурсен файл с разширение «ВЕИ». Ако се вгледате в файла на проекта (TestVer.dpr), можем да видим директива компилатор, който казва на компилатора, че искате да се свържете файл с името на проекта, както и разширяването на «ВЕИ».

За да се покаже тази информация, аз ще използва библиотеката Jedi Code Library. въпреки че не е от значение (за дълго време, аз използвах RXLib, но времената се менят ...). Източници на библиотеката, аз просто го копирате в C: \ Delphi \ D6U2RTL \ Lib_AddOn \ JCL. Сега правилата са малко по-източници (Source1.rar) напишете манипулатор събитие да FormCreate: // Липсващи
употреби
JclFileUtils;

Внимателният читател ще сте забелязали, че файлът грим вече се използва променлив LIB. TestVer.bpg малко модифициране на файла за начина за определяне на библиотеки LIBADDON = C: \ Delphi \ D6U2RTL1 \ Lib_AddOn
LIB = C: \ Delphi \ D6U2RTL1 \ Lib; $ (LIBADDON) \ JCL

Ето защо, чрез промяна на променливата LIB, ние можем лесно да се свърже новата библиотека.

Съставяне на ВЕИ файл с помощта на brcc32

Всичко е перфектно, от Delphi IDE, ние вече могат да управляват информацията в досието на ресурсите. Но как да създадете файл, без да Delphi IDE? За това е brcc32 полезност. С този инструмент, можете да компилирате ресурсни файлове. Аз ще дам един пример, от който аз се надявам, че всичко ще бъде ясно. Така че, да създадете файл TestVer.rc: MAINICON ICON ir.ico
1 VERSIONINFO
FILEVERSION 1,0,0,2
PRODUCTVERSION 1,0,0,2
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP

БЛОК "VarFileInfo"
СТОЙНОСТ "Превод", 1049 1251
>

В резултат на това вие трябва да получите TestVer.res файл.

= EXE изход директория
# -I

= Включване на директории
# -N

= DCU изход директория
#-W = предупредителни съобщения Изходни
# -Q = Quiet компилация
# -CG = цел GUI
DCC = $ (ROOT) \ бен \ dcc32.exe $ ** -В -e $ (BIN) -п $ (DCU) -u $ (LIB) -w -q -CG
БРЦК = $ (ROOT) \ бин \ brcc32.exe

TestVer.exe: $ (PROJECTPATH) \ Източник \ TestVer.dpr
CD $ (PROJECTPATH) \ Източник
$ (БРЦК) $ *
$ (DCC)

Автоматична смяна на номера на версията на файла ж.к.

За това ние използваме една програма, написана от определен Крис Морис (Incverrc.rar). Utyanul аз го CodeCentral с, а може би тя все още може да се намери там. За да използвате тази програма е много прост - трябва като параметър, за да определите името на файла, жк. Например, тъй като

Определяне на версията на файла в партида файлове

Сега можем да запишем една партида файл, който автоматично ще увеличи стойноста на номера на версията и изграждане на проекта. Но аз бих искал това да командния файл е в състояние да определи номера на версията на получения проект, например, да се опаковат източниците на проекта в архива с този номер. По-лесен начин, отколкото да се напише една малка програма, аз не съм намерил. Така че, ExeVer програма - Индикации към стандартния изход форматиран номера на версията. За да се събере необходимата JCL и rxLib. Примери за изпълнение на работната програма по-долу: C: \ Delphi \ ExeVer> ExeVer.exe C: \ Delphi \ TestVer \ Bin \ TestVer.exe% J.% I.% R.% В
1.0.0.2

C: \ Delphi \ ExeVer> ExeVer.exe C: \ Delphi \ TestVer \ Bin \ TestVer.exe% J-% I-% 2R-% 3B
1-0-00-002

C: \ Delphi \ ExeVer> ExeVer.exe C: \ Delphi \ TestVer \ Bin \ TestVer.exe% 3 J
001

алгоритъм за събиране на

Ще действаме в съответствие със следния алгоритъм.

ехо - ст. вземе най-новите версии на файловете
вещни ------------------------------------------------- ---------------
ехо - ст. Плащане% NAMEPROJECT% .rc
ехо -. увеличаване на броя на версията% NAMEPROJECT% .rc
C: \ Delphi \ Incverrc \ IncVerrc.exe -f% NAMEPROJECT% .rc
вещни ------------------------------------------------- ---------------
ехо - направи: започнете да събирате проект

% НАПРАВИ% -f% NAMEPROJECT% .bpg>. \ Bin \ Out.txt

ако errorlevel 1 Гото endError

ехо - направи: Exe направена успешно
вещни информация за връщане версия
ехо - ст. Автоозначаване% NAMEPROJECT% .rc

ехо RAR на -r -s -ep1 М5 -x * .scc. \ Archiv \% NAMEPROJECT% _ %% %% verBuild. RAR. \ Източник \ *. * >> т $$. бухалка
ехо
т $$. прилеп / изчакайте
дел т $$. прилеп
Отидох End

endError
вещни ------------ грешка по време на съставянето ------------------

ехо - ст. undoCheckOut% PROJECTNAME% .rc
ехо.
ехо ГРЕШКА см. out.txt
пауза
CD. \ Bin

заключение

приложения

Подкрепете проекта - споделете линка, благодаря!