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:
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.
|