Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 55049|Antwort: 0

[Quelle] Der Unterschied zwischen dem Roslyn MSBuild-Compiler

[Link kopieren]
Veröffentlicht am 21.03.2021 11:55:39 | | | |
MSBuild: Die Microsoft Build Engine ist eine Plattform zum Erstellen von Anwendungen. Diese Engine, auch bekannt als MSBuild, stellt ein XML-Schema für Projektdateien bereit, das steuert, wie die Build-Plattform Software handhabt und erstellt. Visual Studio verwendet MSBuild, aber MSBuild ist nicht auf Visual Studio angewiesen. Indem Sie msbuild.exe in einer Projekt- oder Lösungsdatei aufrufen, können Sie Produkte in einer Umgebung ohne Visual Studio planen und bauen.

Einführen:Der Hyperlink-Login ist sichtbar.

Barabala hat so viel gesagt, wie der Name schon sagt, er ist der Compiler von Microsoft, also Projekte in ausführbare Programme programmiert usw.

Wie zuvor verwendet, den Code mit txt notepad modifizieren und mit msbuild neu kompilieren, wie folgt:

Zehn Jahre lang .NET-Programme mit Notepad zu Hause am Computer debuggen
https://www.itsvse.com/thread-9419-1-1.html

Roslynist ein Open-Source-.NET-Compiler von Microsoft Corporation. Der Compiler unterstützt C#- und Visual Basic-Code-Kompilierung und bietet Rich-Code-Analyse-APIs.
Wir versuchen, ein neues zu schaffen.NET-Framework 4.6Das Projekt erzeugt, das VS 2019 verwendet, die MSBuild-Projekt-Einstellung Generate Output Detail normal generiert, wie im untenstehenden Bild gezeigt:



Rechtsklick auf das Objekt, um zu versuchen, es zu regenerieren, wie unten gezeigt:



1>------ Alle Überholungen wurden initiiert: Projekt: ConsoleApp1, Konfiguration: Debugging Beliebige CPU-------
1> Die Startzeit ist 2021.03.21, 11:38:08.
1>GenerateBindingRedirects:
1> In ResolveAssemblyReferences gibt es keine empfohlenen bindenden Weiterleitungen.
1>GenerateTargetFrameworkMonikerAttribute:
1> überspringt das Ziel "GenerateTargetFrameworkMonikerAttribute", weil alle Ausgabedateien im Vergleich zu den Eingabedateien aktuell sind.
1>CoreCompile:
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\csc.exe Roslyn\ /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 / deterministisch+ /langversion:7.3 Program.cs Properties\AssemblyInfo.cs "obj\Debug\. NETFramework,Version=v4.6.AssemblyAttributes.cs"
1> Verwenden Sie die gemeinsame Kompilierung für Compiler aus dem Verzeichnis der Rückspalte: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn
1>_CopyAppConfigFile:
1> Dateien von "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config" zu "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ kopieren ConsoleApp1.exe.config"。
1>CopyFilesToOutputDirectory:
1> Dateien von "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe" zu "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ kopieren ConsoleApp1.exe"。
1> ConsoleApp1 -> C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ConsoleApp1.exe
1> Dateien von "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" zu "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ kopieren ConsoleApp1.pdb"。
1>
1> erfolgreich generiert wurde.
1> 0 Warnungen
1> 0 Fehler
1>
1> Verstrichene Zeit 00:00:00,66
========== Alle regenerieren: 1 gelingt, 0 scheitert und 0 ========== übersprungen

Heruntergeladen aus anderen Artikeln im Internet, nur zur Referenz:


Das integrierte MSBuild von .NET Framework 4.0 erkennt die Syntaxfunktionen von C# 6.0 nicht.

"MSBuild" => msbuild.exe, "Roslyn" => csc.exe

MSbuild ist das Build-System von Visual Studio. Es ruft den C#-Compiler auf, um das C#-Projekt zu kompilieren. Roslyn ist ein C#-Compiler (und VB-Compiler). Daher verwendet msbuild Roslyn.

Allerdings enthält Roslyn mehr als nur einen Compiler. Es enthält außerdem ein VS-Plugin, das IDE-Funktionen bietet (Abschlusslisten, Farben, Code-Fixes usw.).

Außerdem ist Roslyn eine API zur Analyse von Quellcode, die Sie in Ihren eigenen Anwendungen verwenden können. Für den letzten Fall gibt es eine API namens MSBuildWorkspace, mit der ein Projekt oder eine Lösung zur Analyse geöffnet werden kann. Dieser Arbeitsbereich nutzt MSBuild, um alle Teile eines Projekts und einer Lösung zu ermitteln. Daher verwendet dieser Teil von Roslin MSBuild.


Zusammenfassung:

Meines Wissens ist MSBuild eine Sammlung von Microsoft-Compilern, und er ist vielleicht nicht für die Generierung verantwortlich, aber er wird uns helfen, Roslyn anzurufen, um den C#-Code zu kompilieren. Er kann auch Code in anderen Sprachen kompilieren und dann andere entsprechende Compiler aufrufen.

Beim Kompilieren von C#-Projekten ist MSBuild der Entscheidungsträger und Roslyn die Ausführende.





Vorhergehend:ASP.NET Core (VI) DI erhält manuell die Methode zum Einschleusen von Objekten
Nächster:.NET/C# Emittiert dynamisch Assemblies
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com