Corect programator - un programator leneș. Dacă se poate automatiza ceva, cu siguranta ai nevoie pentru a face acest lucru. De exemplu, acesta poate fi rulat automat cu windeployqt de asamblare online și instalatori offline, precum și pregătirea depozitului de aplicații utilizând cadru de instalare Qt și magie neagră qmake.
Pentru a face acest lucru cel mai frumos mod, este necesar ca proiectul a fost organizat cu subdirectorii structura. care este format din mai multe proiecte. Nu avem nevoie de fiecare dată când a construi proiectul pentru a crea instalatori. Prin urmare, proiectul va fi un instalator separat.
Dar automatizare windeployqt lăsați în proiectul principal.
Structura proiectului
Deci, avem un proiect cu două sub-proiecte:
- Proiect de aplicare - Hello.pro
- Installer.pro - proiect de instalare
Proiectul principal este cea mai comună „Hello World“, dar cel mai mare interes constă în script-ul qmake, care este responsabil pentru aplicarea windeployqt.
Al doilea proiect are o structură minimă pentru a construi instalatorilor online și offline, precum și construi magazia. script qmake într-un profil al proiectului include, de asemenea, informațiile de care aveți nevoie pentru a automatiza instalatorii construi.
Automatizarea WinDeployQt
HelloInstaller.pro
În plus față de instrucțiunile de asamblare uzuale directoarele executabile și alte fișiere de ieșire din proiect, în acest script qmake lansează utilitarul windeployqt.
În cazul în care un dosar de asamblare-executabil este clar, atunci vom înțelege că același lucru se întâmplă atunci când windeployqt.
QMAKE_POST_LINK - Această directivă specifică acțiunea după finalizarea proiectului construi. Asta este ceea ce facem după ce executabil a fost compilat.
$$ (QTDIR) - o variabilă care conține calea către kit de asamblare Qt. În cazul meu, este D: \ Qt \ 5.7 \ mingw53_32.
Pentru a efectua windeployqt nu indică în mod necesar un fișier executabil, este suficient pentru a specifica un dosar ca argument, în cazul în care se află fișierul. Ca urmare, finalizarea proiectului a ansamblului, se va construi în mod automat aplicațiile necesare pentru dll. și ei vor fi plasate lângă fișierul executabil.
Construiți instalatori și Repository
Construiți instalatori și depozitul de proiect on-line se face cu ajutorul Framework Installer Qt, care conține în utilitatea sa de compoziție este de a construi ei înșiși instalatori, precum și pentru pregătirea depozitului de aplicare.
Pentru a asambla cele două utilități din acest cadru va fi utilizat:
- binarycreator - utilitate pentru a construi programul de instalare;
- repogen - instrument pentru a pregăti depozit on-line.
Înainte de a face cu script-ul qmake, examinați fișierele de configurare și structura de directoare pentru a construi instalatorilor.
structura de directoare
Luați în considerare structura proiectului:
- config - care este fișierul de configurare al programului de instalare:
- config.xml - în acest fișier va conține informații despre un depozit la distanță, versiunea, numele proiectului, etc.
- pachete - care ar fi pachete din care vor fi colectate instalatorii, de exemplu:
- ru.evileg.helloinstaller - un director al primului pachet
- meta - director care conține installyaionnye script-uri, care va descrie specific funcțională, de exemplu, închiderea instanță activă a cererii, în cazul în care aplicația este actualizată, sau informațiile de prescriere în registrul de sistem.
- package.xml - versiunea minimă necesară prezența fișierului, care va fi descris în versiunea proiectului și data construi. Aceste informații sunt necesare pentru formarea de fișier Updates.xml, care va fi plasat în magazia on-line.
- date - acest director va trebui să pună fișierul executabil și toate DLL necesare, fișierele de resurse, fișiere de transfer, etc. Asta este tot ceea ce este necesar pentru a construi o aplicație de lucru.
- meta - director care conține installyaionnye script-uri, care va descrie specific funcțională, de exemplu, închiderea instanță activă a cererii, în cazul în care aplicația este actualizată, sau informațiile de prescriere în registrul de sistem.
- ru.evileg.ecolor - și, de exemplu, directorul de al doilea pachet cu conținutul, care are o structură similară cu varianta de realizare precedentă.
- ru.evileg.helloinstaller - un director al primului pachet
config.xml
package.xml
Au indicat deja informații suplimentare despre instalarea procedurii de aplicare în sistem, și anume, existența unor forme de ferestre, instalare script-uri, de exemplu, pentru a introduce informații în registru. a adăugat, de asemenea, informații cu privire la data de lansare a aplicației, care va fi, de asemenea, plasate în fișierul Updates.xml.
Acest fișier trebuie să fie conținută în fiecare ambalaj. Instalatorul poate oferi posibilitatea de a instala un număr de componente, amintiți-vă de instalare Qt, există o mulțime de puncte. Prin urmare, orice astfel de pachet este punctul tau.
- DisplayName - numele componentei. eticheta obligatorie.
- Descriere - descrierea componentei. eticheta obligatorie.
- Versiunea - versiunea komponentayu. eticheta obligatorie.
- Releasedate - data emiterii. eticheta obligatorie.
- Implicit - componenta opțiune implicită, adică, atunci când componenta care urmează să fie instalate sau nu.
- identificator de pachete sub forma unui nume de domeniu - Numele. eticheta obligatorie.
- ForcedInstallation - indică faptul că este necesară componenta pentru instalare, iar utilizatorul poate exclude din planta
- RequiresAdminRights - indică faptul că pachetul ar trebui să fie instalat cu drepturi de administrator. Câmpul este opțională. Și cel mai interesant lucru este că în programul de instalare proces poate pierde drepturile de administrator de date. Asta este, pentru unele dintre acțiunile vor trebui să re-prompt drepturi de administrator de utilizator.
Installer.pro
Aici este o opțiune cu instalatorii construi în dosare separate pentru versiunile de lansare și Debug. Precum și magazia pentru versiunile de lansare de pregătire.
Pentru a construi programul de instalare deconectat binarycreator utilizați utilitarul cu următoarele opțiuni:
- --off-numai - așa cum este evident din numele, indică faptul că se colectează off-line de instalare
- -c - specifică calea către fișierul de configurare
- -p-Indică calea către pachetele în procesul QtIFW el va înțelege, astfel încât să formeze pachete din programul de instalare cu privire la fișierele de configurare și script-uri din meta directorul
Notă. Pentru versiunea online a programului de instalare toate aceeași, doar argumentul --offline doar înlocuit cu --online-numai.
Un depozit pentru repogen utilizarea de formare de utilitate. cu următorii parametri:
- -p - specifică folderul cu pachetele
- -I - Specifică pachetul care urmează să fie incluse în programul de instalare
- -actualizare - specifică faptul că trebuie să actualizați magazia în calea următoare. În cazul în care nici un depozit, cel nou va fi creat în acest fel.