MSBuild: Το Microsoft Build Engine είναι μια πλατφόρμα για τη δημιουργία εφαρμογών. Αυτή η μηχανή, γνωστή και ως MSBuild, παρέχει ένα σχήμα XML για αρχεία έργου που ελέγχει τον τρόπο με τον οποίο η πλατφόρμα κατασκευής χειρίζεται και δημιουργεί λογισμικό. Το Visual Studio χρησιμοποιεί το MSBuild, αλλά το MSBuild δεν εξαρτάται από το Visual Studio. Καλώντας msbuild.exe σε ένα έργο ή ένα αρχείο λύσης, μπορείτε να προγραμματίσετε και να δημιουργήσετε προϊόντα σε ένα περιβάλλον χωρίς εγκατεστημένο το Visual Studio.
Εισάγω:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Ο Barabala είπε τόσα πολλά, όπως φαίνεται από το όνομα, είναι ο μεταγλωττιστής της Microsoft, δηλαδή προγραμματίζει έργα σε εκτελέσιμα προγράμματα κ.λπ.
Χρησιμοποιήθηκε πριν, τροποποιήστε τον κώδικα χρησιμοποιώντας το σημειωματάριο txt, μεταγλωττίστε ξανά με το msbuild, ως εξής:
Ρόσλινείναι ένας μεταγλωττιστής .NET ανοιχτού κώδικα από τη Microsoft Corporation. Ο μεταγλωττιστής υποστηρίζει μεταγλώττιση κώδικα C# και Visual Basic και παρέχει πλούσια API ανάλυσης κώδικα. Προσπαθούμε να δημιουργήσουμε ένα νέοΠλαίσιο .NET 4.6έργο, χρησιμοποιώντας το VS 2019 θα δημιουργήσει κανονικά τη ρύθμιση MSBuild Project Generate Output Detail, όπως φαίνεται στην παρακάτω εικόνα:
Κάντε δεξί κλικ στο στοιχείο για να προσπαθήσετε να αναγεννηθεί, όπως φαίνεται παρακάτω:
1>------ Όλες οι ανακατασκευές έχουν ξεκινήσει: Έργο: ConsoleApp1, Διαμόρφωση: Εντοπισμός σφαλμάτων οποιασδήποτε CPU ------ 1> Η ώρα έναρξης είναι 21/3/2021 11:38:08. 1>ΔημιουργίαΔεσμευτικέςΑνακατευθύνσεις: 1> Δεν υπάρχουν προτεινόμενες δεσμευτικές ανακατευθύνσεις στο ResolveAssemblyReferences. 1>GenerateTargetFrameworkMonikerAttribute: 1> παρακάμπτει τον στόχο "GenerateTargetFrameworkMonikerAttribute" επειδή όλα τα αρχεία εξόδου είναι ενημερωμένα σε σχέση με τα αρχεία εισόδου. 1>ΠυρήναςΜεταγλώττιση: 1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn\csc.exe /noconfig /nowarn:1701,1702,2008 /fullpaths /nostdlib+ /platform: anycpu32bitpreferred /errorreport:prompt /warn:4 /define:DEBUG; TRACE /errorendlocation /preferreduilang:zh-CN /highentropyva+ /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\Microsoft.CSharp.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Data.DataSetExtensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Data.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Net.Http.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Xml.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Xml.Linq.dll" /debug+ /debug:full /filealign:512 /optimize- /out:obj\Debug\ConsoleApp1.exe /subsystemversion:6.00 /target:exe /utf8output / deterministic+ /langversion:7.3 Program.cs Ιδιότητες\AssemblyInfo.cs "obj\Debug\. NETFramework,Version=v4.6.AssemblyAttributes.cs" 1> Χρησιμοποιήστε κοινόχρηστη μεταγλώττιση για μεταγλωττιστές από τον κατάλογο της πίσω στήλης: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn 1>_CopyAppConfigFile: 1> Αντιγραφή αρχείων από "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config" σε "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.exe.config"。 1>CopyFilesToOutputDirectory: 1> Αντιγραφή αρχείων από "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe" σε "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.exe"。 1> ConsoleApp1 -> C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ConsoleApp1.exe 1> Αντιγραφή αρχείων από το "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" στο "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.pdb"。 1> 1> δημιουργήθηκε με επιτυχία. 1> 0 προειδοποιήσεις 1> 0 σφάλματα 1> 1> Χρόνος που πέρασε 00:00:00.66 ========== Αναγέννηση όλων: 1 επιτυγχάνει, 0 αποτυγχάνει και 0 ========== παραλείπεται Λήψη από άλλα άρθρα στο Διαδίκτυο, μόνο για αναφορά:
Το ενσωματωμένο MSBuild του .NET Framework 4.0 δεν αναγνωρίζει δυνατότητες σύνταξης C# 6.0.
"MSBuild" => msbuild.exe, "Roslyn" => csc.exe
Το MSbuild είναι το σύστημα κατασκευής του Visual Studio. Καλεί τον μεταγλωττιστή C# για να μεταγλωττίσει το έργο C#. Η Roslyn είναι μεταγλωττιστής C# (και μεταγλωττιστής VB). Επομένως, το msbuild χρησιμοποιεί τη Roslyn.
Ωστόσο, η Roslyn περιέχει περισσότερα από έναν απλό μεταγλωττιστή. Περιλαμβάνει επίσης ένα πρόσθετο VS που σας παρέχει δυνατότητες IDE (λίστες συμπλήρωσης, χρώματα, διορθώσεις κώδικα κ.λπ.).
Επιπλέον, το Roslyn είναι ένα API για την ανάλυση του πηγαίου κώδικα, το οποίο μπορείτε να χρησιμοποιήσετε στις δικές σας εφαρμογές. Για την τελευταία περίπτωση, υπάρχει ένα API που ονομάζεται MSBuildWorkspace που μπορεί να χρησιμοποιηθεί για το άνοιγμα ενός έργου ή μιας λύσης για ανάλυση. Αυτός ο χώρος εργασίας χρησιμοποιεί το MSBuild για να ανακαλύψει όλα τα μέρη ενός έργου και μιας λύσης. Επομένως, αυτό το τμήμα του Roslin χρησιμοποιεί το MSBuild.
Περίληψη:
Η δική μου κατανόηση είναι ότι το MSBuild είναι μια συλλογή μεταγλωττιστών της Microsoft και μπορεί να μην είναι υπεύθυνος για τη μεταγλώττιση της γενιάς, αλλά θα μας βοηθήσει να καλέσουμε τη Roslyn να μεταγλωττίσει τον κώδικα c#. Μπορεί επίσης να μεταγλωττίσει κώδικα σε άλλες γλώσσες και στη συνέχεια να καλέσει άλλους αντίστοιχους μεταγλωττιστές.
Για τη σύνταξη έργων C#, το MSBuild είναι ο υπεύθυνος λήψης αποφάσεων και η Roslyn είναι ο εκτελεστής.
|