Lucrul cu proprietățile proiectului

Când creați un proiect, sistemul atribuie valori diferitelor proprietăți. Valorile implicite variază în funcție de tipul de proiect și de opțiunile disponibile, selectați în Expertul aplicație. De exemplu, un proiect ATL are proprietăți care sunt legate de fișiere MIDL, dar acestea nu sunt găsite într-o aplicație simplă a consolei. În zona "General", fereastra de proprietăți afișează proprietățile implicite:







Lucrul cu proprietățile proiectului

Unele proprietăți, cum ar fi numele aplicației, sunt utilizate pentru toate opțiunile de construire, indiferent de platforma țintă sau sunt construite de depanare sau de lansare. Cu toate acestea, majoritatea proprietăților depind de configurație. Acest lucru se datorează faptului că compilatorul trebuie să știe pe care platforme va rula programul și care parametri specifici de compilator ar trebui folosiți pentru a crea codul corect. Prin urmare, atunci când se configurează o proprietate, este important să se acorde atenție configurațiilor și platformelor la care trebuie aplicată noua valoare. Ar trebui folosită numai pentru ansambluri de depanare Win32 sau ar trebui să fie aplicată și pentru depanarea ARM și x64 debugging? De exemplu, optimizarea implicită este setată la viteza maximă (/ O2) în configurația de lansare, dar este dezactivată în configurația de depanare.

Lucrul cu proprietățile proiectului

Figura următoare prezintă aceeași pagină cu proprietăți de proiect, dar configurația a fost modificată. Observați cealaltă valoare pentru proprietatea de optimizare. Rețineți că configurația activă este în continuare de depanare. Puteți seta proprietățile pentru orice configurație, nu ar trebui să fie activă.

Lucrul cu proprietățile proiectului

Sistemul de proiect în sine se bazează pe MSBuild, care definește formatele de fișiere și regulile pentru crearea de proiecte de orice tip. MSBuild gestionează cea mai mare parte a complexității clădirii pentru mai multe platforme și configurații, dar trebuie să înțelegeți puțin despre funcționarea sa. Acest lucru este important în special dacă doriți să definiți configurații personalizate sau să creați seturi de proprietăți reutilizabile pe care le puteți partaja și importa în mai multe proiecte.

Proprietățile proiectului sunt stocate direct în fișierul proiectului (* .vcxproj) sau în alte fișiere XML sau .props, importă fișierul proiectului și specifică valorile implicite. După cum se arată mai sus, aceleași proprietăți pentru aceeași configurație pot fi atribuite diferite valori în diferite fișiere. La construirea unui proiect, managerul MSBuild evaluează fișierul proiectului și toate fișierele importate într-o ordine bine definită (așa cum este descris mai jos). Pe măsură ce fiecare fișier este evaluat, toate valorile proprietăților definite în acest fișier suprascriu valorile existente. Toate valorile care nu sunt specificate sunt moștenite din fișierele calculate anterior. Prin urmare, atunci când setați o proprietate utilizând paginile cu proprietăți, este important să acordați atenție locului în care este instalată. Dacă setați proprietatea "X" la un fișier PROPS, dar proprietatea are valoarea "Y" în fișierul proiectului, proprietatea va fi construită, valoarea este "Y". Dacă proprietatea are valoarea "Z" în elementul proiectului, de exemplu, un fișier CPP, manipulatorul MSBuild va folosi valoarea "Z". Pentru mai multe informații, consultați moștenirea proprietății mai târziu în acest articol.

Configurația reprezintă grupuri arbitrare, numele proprietății. Visual Studio oferă configurații de depanare și de lansare și fiecare are proprietăți diferite necesare pentru a crea o depanare sau o lansare. Puteți utiliza Configuration Manager pentru a defini configurațiile personalizate - o modalitate convenabilă de grupare a proprietăților pentru o anumită versiune de construire. Managerul de proprietăți este utilizat pentru lucrări avansate cu proprietăți, dar îl prezentăm aici, deoarece vă ajută să vizualizați configurațiile de proprietăți. Accesați-l din vizualizare Manager de proprietate sau vizualizare Alte ferestre | Managerul de proprietate, în funcție de setări. Proiectul avea noduri pentru fiecare pereche de configurații și platforme. În fiecare dintre aceste noduri există noduri pentru pagini de proprietăți (fișiere PROPS), setați câteva proprietăți definite pentru această configurație.

Lucrul cu proprietățile proiectului

Dacă accesați zona "General" din fereastra de proprietăți (a se vedea figura de mai sus) și setați proprietatea "Nu setați" la un caracter în loc de "Utilizarea Unicode" și faceți clic pe OK. nu vor fi afișate în managerul de proprietăți. Suportul Unicode pentru configurația actuală, dar va rămâne pentru alte configurații.

Pentru mai multe informații despre managerul proprietății și proprietățile, consultați Crearea configurațiilor de proprietăți reutilizabile mai târziu în acest articol.

Fișierul de utilizator este o componentă depășită și este recomandat să îl ștergeți pentru a salva proprietățile corect, grupate după configurație și platformă.

Macrouri presetate

macrocomenzi globale
Se aplică tuturor elementelor din configurația proiectului. Sintaxă: $ (nume). Un exemplu de macrocomandă globală este proprietatea $ (VCInstallDir). care salvează directorul rădăcină de instalare Visual Studio. Macro-ul global corespunde cu elementul PropertyGroup din MSBuild.

element macro
Sintaxă:% (nume). În cazul unui fișier, macroul elementului se aplică numai acestui fișier - de exemplu, puteți utiliza% (AdditionalIncludeDirectories). Pentru a determina directoarele care se aplică numai unui anumit fișier. Acest tip de macrocomandă corespunde metadatelor grupului de elemente din MSBuild. Atunci când este utilizat în contextul unei configurații a proiectului, macro-ul elementului este aplicat tuturor fișierelor de tip specific. De exemplu, proprietatea de configurare C / C ++ a Definițiilor Preprocesor poate lua macro-ul elementului% (PreprocessorDefinitions). care se aplică tuturor fișierelor CPP din proiect. Acest tip de macro element corespunde cu metadatele ItemDefinitionGroup din MSBuild. Pentru mai multe informații, consultați Definiții articole.







Macrouri personalizate

Puteți crea macrocomenzi personalizate pentru a fi folosite ca variabile în ansamblurile de proiecte. De exemplu, puteți crea o macrocomandă personalizată care oferă o valoare pentru un pas de asamblare personalizat sau pentru un instrument particularizat de asamblare. O macrocomandă personalizată este o pereche de nume-valoare. Pentru a accesa această valoare, notația $ (nume) este utilizată în fișierul proiectului.

O macrocomandă personalizată este stocată pe pagina de proprietăți. Dacă proiectul nu conține o pagină de proprietăți, îl puteți crea urmând instrucțiunile din Crearea configurațiilor de proprietăți reutilizabile.

Crearea unei macrocomenzi personalizate

În Managerul de proprietăți (pe bara de meniu, faceți clic pe Vizualizare.) Managerul de proprietăți deschideți meniul contextual pentru pagina cu proprietăți (numele său este USER), apoi faceți clic pe Proprietăți. Se deschide pagina Proprietăți pentru această pagină de proprietate.

În panoul din stânga al casetei de dialog, selectați User macro-uri. În panoul din partea dreaptă, faceți clic pe butonul Adăugați macro. Pentru a deschide caseta de dialog Adăugare macro personalizată.

În caseta de dialog, specificați numele și valoarea pentru macro. În plus, puteți selecta caseta de selectare Specificați această macrocomandă ca variabilă de mediu în mediul de construcție.

Lucrul cu proprietățile proiectului

Lucrul cu proprietățile proiectului

Fișierele utilizatorilor și de ce sunt probleme

Deși fișierele USER sunt încă instalate de mediul Visual Studio și sunt implicate în moștenirea proprietății, acestea sunt, în mod implicit, goale. Este recomandat să ștergeți referința la aceste fișiere din Property Manager. Pentru a garanta munca proiectelor indiferent de parametrii unui anumit utilizator sau a unui anumit calculator. Acest lucru este important pentru a asigura un comportament adecvat în mediul de gestionare a codului sursă (SCC).

Pentru a deschide Managerul de proprietăți. În bara de meniu, faceți clic pe Vizualizare. Alte Windows și Property Manager.

Dacă aveți un set comun, adesea folosit, de proprietăți pe care doriți să îl aplicați la mai multe proiecte, puteți utiliza Managerul de proprietăți pentru a le scrie în fișierul paginii cu proprietăți reutilizabile. care prin acord are o extensie de nume de fișier PROPS. Această pagină poate fi aplicată proiectelor noi pentru a exclude necesitatea de a seta proprietățile de la zero. Pentru a deschide Managerul de proprietăți. Din bara de meniu, selectați Vizualizare. Manager de proprietate.

Lucrul cu proprietățile proiectului

Fiecare nod al configurației afișează noduri pentru fiecare pagină de proprietate care este aplicată acestei configurații. Sistemul adaugă pagini de proprietăți, valori definite pe baza parametrilor selectați în Expertul de aplicație la crearea proiectului. Faceți clic dreapta pe orice nod și selectați proprietăți pentru a vedea proprietățile care se aplică acelui nod. Paginile de proprietăți sunt importate automat în proprietățile proiectului "principal" (ms.cpp.props) și evaluate în ordinea în managerul de proprietăți. Puteți să le mutați pentru a schimba ordinea calculului. Paginile de proprietăți care sunt evaluate mai târziu vor suprascrie valorile din foile calculate anterior.

Dacă dați clic pe Adăugați o nouă pagină de proprietăți a proiectului. apoi selectați, de exemplu, pagina proprietății MyProps.props, se deschide caseta de dialog a paginilor de proprietăți. Rețineți că se referă la pagina proprietății MyProps; toate modificările pe care le faceți sunt scrise în această pagină și nu în fișierul proiectului (cu extensia VCXPROJ).

Proprietățile de pe pagina de proprietăți sunt suprascrise dacă aceeași proprietate este specificată direct în fișierul VCXPROJ.

Puteți importa pagina de proprietate de mai multe ori. Mai multe proiecte din soluție pot moșteni parametri dintr-o pagină de proprietăți, iar proiectul poate avea mai multe pagini. Pagina proprietății în sine poate moșteni parametri de pe altă pagină de proprietăți.

De asemenea, puteți crea o pagină de proprietate pentru mai multe configurații. Pentru aceasta, creați o pagină de proprietăți pentru fiecare configurație, deschideți un meniu de comenzi rapide pentru unul dintre ele, selectați Adăugați o pagină de proprietate existentă și adăugați alte pagini. Cu toate acestea, atunci când utilizați o pagină de proprietate comună, trebuie să rețineți că, prin setarea proprietății, o specificați pentru toate configurațiile cărora li se aplică pagina corespunzătoare, iar IDE nu indică proiectele sau alte pagini de proprietate moștenite de pe această pagină de proprietate.

În soluțiile mari care vor conține mai multe proiecte, este logic să creați o pagină de proprietate la nivelul soluției. Când adăugați un proiect la o soluție, utilizați Managerul de proprietăți pentru a adăuga această pagină de proprietate în proiect. Dacă este necesar, puteți adăuga o pagină de proprietate nouă la nivel de proiect pentru a specifica valori relevante pentru proiect.

În mod implicit, fișierul PROPS nu participă la sistemul de control al versiunilor, deoarece nu este creat ca element de proiect. Dacă doriți să includeți acest fișier în sistemul de control al versiunilor, îl puteți adăuga manual la elementul de soluție.

Creați o pagină de proprietăți

În bara de meniu, faceți clic pe Vizualizare. Manager de proprietate. Se deschide caseta de dialog Manager proprietăți.

Pentru a defini zona paginii proprietăților, selectați elementul la care se aplică. Aceasta poate fi o configurație specifică sau o altă pagină de proprietăți. Deschideți meniul contextual al acestui element și selectați comanda Adăugați o nouă pagină a proprietăților proiectului. Specificați un nume și o locație.

În Property Manager, deschideți o nouă pagină de proprietăți și apoi specificați proprietățile pe care doriți să le activați.

Proprietățile proiectului au o structură pe mai multe niveluri. Fiecare nivel moștenește valorile precedente, dar valoarea moștenită poate fi anulată prin setarea explicită a proprietății. Următorul este arborele de moștenire de bază.

Setările implicite sunt din setul de instrumente CPB MSBuild (.. \ Program Files \ MSBuild \ Microsoft.Cpp \ v4.0 \ Microsoft.Cpp.Default.props, importat de fișierul VCXPROJ).

Fișierul VCXPROJ (poate suprascrie parametrii și parametrii impliciți ai paginii proprietăților).

Proprietatea evidențiată cu caractere aldine (aldine) din pagina de proprietăți este definită în contextul actual. Proprietatea este moștenită în font obișnuit.

Fișierele de proiect implementate pot fi mari și greu de înțeles dacă utilizatorul nu este familiarizat cu MSBuild. Structura principală a fișierului proiectului este prezentată mai jos.

Principalele proprietăți ale proiectului, care nu sunt reprezentate în mediul integrat de dezvoltare.

Importați fișierul Microsoft.cpp.default.props, care definește câteva proprietăți de bază, independente de unelte.

Proprietăți de configurare globale (furnizate ca proprietăți implicite ale PlatformToolset și Project în pagina Configurare> Generale). Aceste proprietăți determină ce pagini de proprietăți din setul de instrumente și paginile cu proprietăți încorporate vor fi importate din fișierul Microsoft.cpp.props în pasul următor.

Importați fișierul Microsoft.cpp.props, care stabilește majoritatea valorilor implicite ale proiectului.

Importați toate paginile cu proprietăți, inclusiv fișierele USER. Aceste pagini de proprietăți pot suprascrie toate valorile, cu excepția proprietăților implicite ale PlatformToolset și Project.

Restul proprietăților de configurare a proiectului. Aceste valori pot suprascrie valorile specificate în paginile de proprietăți.

Elemente (fișiere) împreună cu metadatele asociate. Aceste elemente sunt întotdeauna folosite ultima dată în regulile de calcul MSBuild, chiar dacă acestea apar înainte de alte proprietăți și importuri.

Pentru mai multe informații, consultați MSBuild Properties.







Articole similare

Trimiteți-le prietenilor: