Manual c #, compilator

De fapt, o necesitate pentru o serie de aplicații pe scară largă folosind doar o singură C # linie de comandă compilator nu poate avea loc, cu toate acestea, este important să se înțeleagă, în general, modul de a compila manual fișierele cod. Există mai multe motive pentru dezvoltarea acestui proces pot fi utile:

Puteți lucra la universitate, în cazul în care utilizarea de instrumente pentru a genera cod și IDE-media este de obicei interzisă.

Este planificat să utilizeze instrumente de proiectare automate, cum ar fi msbuild.exe, care trebuie să cunoască instrumentele de linie de comandă utilizate pentru opțiunea.

Există dorința de a aprofunda cunoștințele lor în C #. Grafica IDE-mediu în cele din urmă se termină furnizarea de instrucțiuni compilator csc.ehe pe ce să facă cu fișierul de intrare C # cod. În acest sens, studiul a ceea ce se întâmplă „în spatele scenei“ vă permite să câștige cunoștințele necesare.

Un alt avantaj al abordării cu utilizarea de numai un compilator csc.ehe este că vă permite să câștige abilități și să se simtă mai încrezători atunci când se lucrează cu alte instrumente de linie de comandă, care fac parte din .NET Framework 4.0 SDK. deoarece o serie de utilitati importante funcționează numai în modul linie de comandă.

Când ați terminat, salvați fișierul ca TestApplication.cs. Acum, haideți să aruncăm o privire la opțiunile cheie ale compilator C #.

Notă țintă de intrare și ieșire parametrii

În primul rând, este important să se înțeleagă, astfel încât să se precizeze numele și tipul ansamblului creat (de exemplu, de exemplu, o aplicație consolă numită Myshell.exe, biblioteca de cod numit MathLib.dll sau Windows Presentation Foundation aplicație numită Halo8.ehe). Fiecare dintre opțiunile are un pavilion corespunzătoare care urmează să fie transmis la csc.ehe compilator ca parametru de linie de comandă.

Rețineți că parametrii trecut la compilator de linie de comandă (precum și cele mai multe dintre celelalte instrumente de linie de comandă), poate fi însoțită de un prefix ca un simbol cratimă (-) sau o bară oblică (/).

Parametrii de ieșire care pot lua compilator C # prezentate în tabelul de mai jos:

Compiler Opțiuni csc.exe

Acest parametru este utilizat pentru a specifica numele creat de Adunare. În mod implicit, ansamblul este atribuit același nume ca și cea a fișierului de intrare * .SS

Această opțiune vă permite să creați o aplicație consolă executabil. Ansamblul acestui tip este generat în mod implicit, deoarece această setare poate fi coborâtă pentru a crea o aplicație similară

Această opțiune vă permite să creați un singur fișier de asamblare * .dll

Această opțiune vă permite să creați un modul. Modulele sunt elemente ansambluri multifile

Deși aplicația cu o interfață grafică de utilizator pot fi create folosind parametrul / țintă: exe, opțiune / țintă: winexe împiedică deschiderea ferestrei consola sub alte ferestre

Pentru a compila TestApplication.cs TestApplication.exe într-o aplicație consolă, du-te la directorul în care fișierul sursă este salvat (folosind steagul CD) și tastați următoarea comandă:

Manual c #, compilator

Vă rugăm să rețineți că aici C: \ myProject - este calea către folderul în care este stocat fișierul TestApplication.cs. De asemenea, rețineți că pavilion / out nu a fost specificat în mod explicit aici, astfel încât un fișier executabil va fi numit TestApplication.ehe datorită faptului că numele fișierului de intrare este TestApplication. În plus, pentru aproape toate luate de C # steaguri compilatorul sprijinit versiune prescurtată de scriere, cum ar fi / t în loc de / țintă (lista completă poate fi văzută prin tastarea linia de comandă csc -?).

Acum puteți încerca să rulați aplicația TestApplication.ehe din linia de comandă introducând numele fișierului executabil:

Manual c #, compilator

Adăugarea de link-uri către asamblare externă

Să vedem cum să compileze o aplicație care utilizează tipurile definite într-un ansamblu de .NET separat. Dacă a rămas neclar modul în care compilator C # a fost capabil să înțeleagă referirea la un tip System.Console, amintiți-vă că în timpul procesului de compilare a adăuga automat o trimitere la mscorlib.dll (în cazul în care din anumite motive neobișnuite, trebuie să dezactivați această caracteristică, ar trebui să fie trecut la CSC compilator. parametru exe / nostdlib).

TestApplication modificăm aplicația, astfel încât acesta se deschide o fereastră de Windows Forms mesaj. Pentru a face acest lucru, TestApplication.cs deschise fișier și modificați-l după cum urmează:

Mai mult, în linia de comandă trebuie să informeze compilator csc.exe despre ceea ce conține de asamblare spațiul de nume utilizat. Așa cum clasa MessageBox utilizate în spațiul de nume System.Windows.Forms, atunci trebuie să-i spuneți compilator pentru System.Windows.Forms.dll de asamblare, care se face cu pavilion / referință (sau o versiune prescurtată a / r):

Manual c #, compilator

Dacă acum vom încerca din nou pentru a rula aplicația, în plus față de consola ar trebui să apară, de asemenea, cu o cutie de mesaj:

Manual c #, compilator

Apropo, ce să facă atunci când aveți nevoie pentru a specifica numărul de ansambluri externe csc.exe? Pentru a face acest lucru, trebuie doar pentru a enumera toate ansamblurile, separate prin punct și virgulă. În acest exemplu, se referă la mai multe ansambluri este necesară, dar aici este o comandă care ilustrează ansamblul set de transfer:

csc /r:System.Windows.Forms.dll;System.Drawing.dll * .cs

Alcătuirea mai multe fișiere sursă

In exemplul de aplicație TestApp.exe a fost creat folosind un singur cod sursă de fișier *. cs. Deși definesc toate tipurile de .NET într-un singur fișier * .cs perfect acceptabil în cele mai multe proiecte de cazuri sunt formate din mai multe fișiere * cod de bază .cs pentru a da o mai mare flexibilitate. Pentru a face mai clar, să creeze o nouă clasă și salvați-l într-un fișier numit HelloMessage.cs:

Modificarea TestApplication clasa originală, astfel încât acesta a folosit un nou tip de clasă:

Pentru a compila fișierele cod sursă în C #. acestea trebuie să fie enumerate în mod explicit ca fișiere de intrare:

În vă permite să utilizați un wildcard (*) C # compilator ca o alternativă pentru includerea în adunarea actuală a tuturor fișierelor * .cs, care sunt conținute în directorul de proiect:

Manual c #, compilator

Concluzia obținută după începerea programului este identic cu programul precedent. Singura diferență între aceste aplicații se datorează diversității logicii în mai multe fișiere.

Lucrul cu fișierele de răspuns în C #

Nu este greu de ghicit, pentru a crea un C # o aplicație complexă din linia de comandă ar fi necesare pentru a introduce numărul plictisitor de parametri de intrare pentru anunțul compilator modul în care el ar trebui să se ocupe de codul sursă. Pentru a facilita acest lucru, compilatorul C # sprijină utilizarea așa-numitului fișier de răspuns (fișiere de răspuns).

Acum, menținând în același timp fișierul în același director ca subiect pentru a compila fișierele cod sursă în C #, puteți crea întreaga aplicație, după cum urmează (observați utilizarea simbolului @):

Dacă este necesar, de asemenea, specifica permisă și mai multe răspunsuri * .rsp fișiere ca parametri de intrare (de exemplu, csc @ FirstFile.rsp @ SecondFile.rsp @ ThirdFile.rsp). Cu această abordare, cu toate acestea, trebuie să se țină seama de faptul că compilatorul procesează opțiunile de comandă în care acestea devin disponibile. Prin urmare, argumentele de linie de comandă, conținute în incoming mai târziu * fișierul .rsp poate suprascrie setările din fișierul de răspuns anterior.

Punctul final referitoare la fișierul de răspuns pe care trebuie să menționez este că, cu C # compilator asociate fișier de răspuns csc.rsp care este utilizat în mod implicit și este situat în același director ca și fișierul csc.ehe (de obicei C: \ Windows \ Microsoft. NET \ Framework \. în cazul în care pentru a plasa elementul este o platformă anumit număr de versiune). deschiderea fișierului în Notepad (Notepad) Csc.rsp, puteți vedea că printr-un steag / r: sunt specificate multe ansambluri NET, inclusiv o varietate de biblioteci pentru dezvoltarea de aplicatii web, programare folosind tehnologia LINQ și accesul la date și alte biblioteci cheie (în plus, desigur, cele mai multe dintre principalele mscorlib.dll bibliotecă):

Manual c #, compilator

Este demn de remarcat faptul că, dacă adăugați folosind referințele de asamblare opțiunea / r, care nu sunt utilizate de fapt, compilatorul le va ignora. Prin urmare, să vă faceți griji cu privire la „codul de umflare“ nu este necesar.

articole similare