Τι είναι ένα αρχείο CSProj;
Τα αρχεία με επέκταση CSPROJ αντιπροσωπεύουν ένα αρχείο έργου C# που περιέχει τη λίστα των αρχείων που περιλαμβάνονται σε ένα έργο μαζί με τις αναφορές σε συγκροτήματα συστήματος. Όταν ξεκινά ένα νέο έργο στο Microsoft VIiual Studio, λαμβάνετε ένα αρχείο .csproj μαζί με το αρχείο κύριας λύσης (.sln). Εάν υπάρχουν περισσότερες από μία συναρμολογήσεις σε ένα έργο, θα υπάρχει επίσης ίσος αριθμός αρχείων έργου όπου το αρχείο .sln τα συνδέει όλα μαζί ως μέρος του έργου. Τα περιεχόμενα αυτού του αρχείου καθορίζουν όλες τις απαιτήσεις που απαιτούνται για τη δημιουργία του έργου, όπως το περιεχόμενο που θα συμπεριληφθεί, οι απαιτήσεις πλατφόρμας, οι πληροφορίες έκδοσης, οι ρυθμίσεις διακομιστή web ή διακομιστή βάσης δεδομένων και τις εργασίες που πρέπει να εκτελεστούν. Τα περιεχόμενα ενός αρχείου έργου είναι ταξινομημένα σε μορφή αρχείου XML και μπορούν να ανοιχτούν σε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου για επεξεργασία καθώς και προβολή. Δίνει επίσης μια λογική άποψη στα αρχεία του έργου για σωστή τακτοποίηση.
Μορφή αρχείου CSPROJ
Οι προγραμματιστές μπορούν να δημιουργήσουν μόνοι τους αρχεία έργου, καθώς και να τιμήσουν το Σχήμα MSBuild XML. Η ανοιχτή και διαφανής δομή των αρχείων έργου επιτρέπει στους προγραμματιστές εφαρμογών να επιβάλλουν εξελιγμένο και λεπτόκοκκο έλεγχο στον τρόπο κατασκευής και ανάπτυξης των έργων. Τα περιεχόμενα ενός τέτοιου αρχείου έργου έχουν πολύ σαφή σχέση μεταξύ τους. Το παρακάτω σχήμα δείχνει βασικά στοιχεία και τη σχέση μεταξύ τους για ένα τέτοιο αρχείο έργου.
Οι ακόλουθες ενότητες επεξεργάζονται τα στοιχεία μορφής αρχείου για ένα αρχείο έργου.
Στοιχείο έργου
Το στοιχείο Project είναι το ριζικό στοιχείο κάθε αρχείου έργου. Προσδιορίζει το σχήμα XML για το αρχείο του έργου και μπορεί να περιλαμβάνει χαρακτηριστικά για τον καθορισμό των σημείων εισόδου για τη διαδικασία κατασκευής.
<Project ToolsVersion#"4.0" DefaultTargets#"FullPublish"
xmlns#"http://schemas.microsoft.com/developer/msbuild/2003">
</Project>
Ιδιότητες και προϋποθέσεις
Οι ιδιότητες αντιπροσωπεύουν τις απαραίτητες πληροφορίες που απαιτούνται για την κατασκευή ενός έργου. Τέτοιες ιδιότητες ορίζονται σε ένα στοιχείο PropertyGroup. Αυτές οι ιδιότητες αποτελούνται από ζεύγη κλειδιού-τιμής όπου το όνομα στοιχείου ιδιότητας ορίζει το κλειδί ιδιότητας και το περιεχόμενο του στοιχείου ορίζει την τιμή ιδιότητας. Για παράδειγμα, θα μπορούσατε να ορίσετε ιδιότητες με το όνομα ServerName και ConnectionString για αποθήκευση ενός στατικού ονόματος διακομιστή και συμβολοσειράς σύνδεσης.
<PropertyGroup>
<ServerName>FABRIKAM\TEST1</ServerName>
<ConnectionString>
Data Source#FABRIKAM\TESTDB;InitialCatalog#ContactManager,...
</ConnectionString>
</PropertyGroup>
Οι συνθήκες μπορούν να καθοριστούν μέσω στοιχείων προκειμένου να καθοριστούν τα κριτήρια για την αξιολόγηση του στοιχείου. Αυτό καθορίζεται από τη λέξη συνθήκης ενώ ορίζεται η ιδιότητα όπως φαίνεται παρακάτω:
<PropertyGroup>
<OutputRoot Condition#" '$(OutputRoot)'##'' ">..\Publish\Out\</OutputRoot>
...
</PropertyGroup>
Όταν το MSBuild επεξεργάζεται αυτόν τον ορισμό ιδιότητας, ελέγχει πρώτα εάν είναι διαθέσιμη μια τιμή ιδιότητας $(OutputRoot). Εάν η τιμή της ιδιότητας είναι κενή — με άλλα λόγια, ο χρήστης δεν έχει παράσχει τιμή για αυτήν την ιδιότητα — η συνθήκη αξιολογείται σε true και η τιμή της ιδιότητας ορίζεται σε ..\Publish\Out.
Στοιχεία και Ομάδες Αντικειμένων
Ένα αρχείο έργου ορίζει εισόδους στη διαδικασία κατασκευής που είναι στην πραγματικότητα διαφορετικοί τύποι αρχείων. Στην ονοματολογία MSBuild, αυτές οι είσοδοι αντιπροσωπεύονται από στοιχεία Item και ορίζονται σε ένα στοιχείο ItemGroup. Ακριβώς όπως τα στοιχεία Ιδιότητα, μπορείτε να ονομάσετε ένα στοιχείο Στοιχείο όπως θέλετε. Ωστόσο, πρέπει να καθορίσετε ένα χαρακτηριστικό Include για να προσδιορίσετε το αρχείο ή τον χαρακτήρα μπαλαντέρ που αντιπροσωπεύει το στοιχείο.
<ItemGroup>
<ProjectsToBuild Include#"$(SourceRoot)ContactManager-WCF.sln"/>
</ItemGroup>
Στόχοι και Εργασίες
Ένα στοιχείο Task αντιπροσωπεύει μια μεμονωμένη εντολή (ή εργασία) κατασκευής. Το MSBuild περιλαμβάνει ένα πλήθος προκαθορισμένων εργασιών. Για παράδειγμα:
- Η εργασία Αντιγραφή αντιγράφει τα αρχεία σε μια νέα τοποθεσία.
- Η εργασία Csc καλεί τον μεταγλωττιστή Visual C#.
- Η εργασία Vbc καλεί τον μεταγλωττιστή της Visual Basic.
- Η εργασία Exec εκτελεί ένα καθορισμένο πρόγραμμα.
- Η εργασία Μήνυμα γράφει ένα μήνυμα σε ένα καταγραφικό.
Οι εργασίες πρέπει πάντα να περιέχονται στα στοιχεία Target. Ένα στοιχείο Στόχος είναι ένα σύνολο από μία ή περισσότερες εργασίες που εκτελούνται διαδοχικά και ένα αρχείο έργου μπορεί να περιέχει πολλούς στόχους.
<Project xmlns#"http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name#"LogMessage">
<Message Text#"Hello world!" />
</Target>
</Project>