ghid practic

Procesul de construire a Visual Studio este definit într-o serie de fișiere MSBuild .targets, care sunt importate în dosarul de proiect. Unul dintre fișierele importate, Microsoft.Common.targets, poate fi extins prin adăugarea de capacitatea de a efectua sarcini personalizate la mai multe puncte în procesul de construire. Această secțiune descrie două moduri de a extinde construcția procesului de Visual Studio.

Supracomandarea obiective specifice predefinite, definite în fișierul Microsoft.Common.targets.

Proprietăți prioritari „DependsOn“, definițiile care sunt conținute în fișierul Microsoft.Common.targets.

În Microsoft.Common.targets fișier conține o serie de ținte goale predefinite, care sunt în proces de construire invocate înainte și după unele dintre obiectivele majore. De exemplu, MSBuild BeforeBuild face ca obiectul țintă înainte ca principal obiect țintă și obiectul țintă CoreBuild AfterBuild după principalul CoreBuild țintă. În mod implicit, ținte goale în fișierul Microsoft.Common.targets nu efectuează nici o acțiune, dar comportamentul implicit poate fi înlocuită prin specificarea obiectivelor dorite în fișierul de proiect, care este importat fișierul Microsoft.Common.targets. În acest caz, puteți utiliza sarcini MSBuild au mai mult control asupra procesului de construcție.

obiective predefinite prioritari

În fișierul Microsoft.Common.targets, selectați un obiectiv predefinit pe care doriți să înlocuiți. Tabelul de mai jos conține o listă completă de obiective, care pot fi suprascrise fără teamă.

Determina obiectivul sau obiectivele la sfârșitul fișierului de proiect, imediat după eticheta . Exemple.

Sarcinile care sunt adăugate la una dintre aceste obiective sunt executate înainte sau după compilarea principală. Majoritatea setărilor se realizează într-una din cele două obiective.

Sarcinile care sunt adăugate la una dintre aceste obiective sunt executate înainte sau după un apel de re-construirea funcții de bază. Ordinea obiectivelor de performanță în Microsoft.Common.targets fișier: BeforeRebuild. Curat. Build. și apoi AfterRebuild.

Sarcinile care sunt adăugate la una dintre aceste obiective, efectuate înainte sau după apelul principal funcția de curățare.

Sarcinile care sunt adăugate la unul dintre aceste obiective, efectuate înainte sau după rezoluția de link building.

Sarcinile care sunt adăugate la unul dintre aceste obiective, efectuate înainte sau după crearea de resurse.

Cel mai simplu mod de a extinde procesul de construire - o redefinire a obiectivelor predefinite, cu toate acestea, poskolkuMSBuild obiectivele de delimitare în mod constant, nimic nu poate împiedica un alt proiect în care este importat proiectul, pentru a redefini obiectivele care au fost deja redefinită prin tine. De exemplu, ultima țintă AfterBuild. definite în fișierul de proiect, apoi importați toate proiectele rămase vor fi obiectul țintă, care este utilizat în timpul construcției.

Pentru a proteja împotriva unor ținte nedorite pot suprascrie suprascrie proprietăți „DependsOn“, care sunt utilizate în atributele DependsOnTargets în jurul valorii de fișier Microsoft.Common.targets. De exemplu, în obiectivul DependsOnTargets Build conține atribut cu o valoare de „$ (BuildDependsOn)“. Luați în considerare acest exemplu:

Acest fragment de cod XML-o specifică faptul că, înainte de a executa Build-țintă necesare pentru a îndeplini toate obiectivele specificate în proprietatea BuildDependsOn. BuildDependsOn proprietate este definită după cum urmează:

Proiectele, care sunt importate fișiere de proiect, puteți trece peste aceste proprietăți fără a suprascrie setările făcute de către utilizator.

Proprietăți prioritari „DependsOn“

În fișierul Microsoft.Common.targets, selectați o proprietate predefinită „DependsOn“, care trebuie să fie redefinite. În tabelul de mai jos se referă la. O listă de proprietăți suprascrie frecvent „DependsOn“.

Definiți o altă instanță a proprietății sau proprietăților la sfârșitul fișierului proiectului. Noua proprietate, inclusiv proprietatea originală, cum ar fi $ (BuildDependsOn).

Definiți obiectele țintă personalizate înainte sau după determinarea proprietăților.

Crearea unui fișier de proiect.

De multe ori suprascrie proprietăți „DependsOn“

Proprietatea ar trebui să fie redefinite, în cazul în care doriți să inserați obiective personalizate înainte sau după întregul proces de construcție.

Proprietatea trebuie să fie redefinit, dacă doriți să eliminați fișierul de ieșire al procesului de construcție personalizat.

Proprietatea ar trebui să fie redefinite, în cazul în care doriți să inserați procese personalizate înainte sau după etapa de compilare.