MSBuild: Microsoft Build Engine je platforma pro tvorbu aplikací. Tento engine, známý také jako MSBuild, poskytuje XML schéma pro projektové soubory, které řídí, jak build platforma zpracovává a vytváří software. Visual Studio používá MSBuild, ale MSBuild nezávisí na Visual Studiu. Voláním msbuild.exe v projektu nebo řešení můžete plánovat a vytvářet produkty v prostředí bez instalace Visual Studia.
Představit:Přihlášení k hypertextovému odkazu je viditelné.
Barabala řekl tolik, jak je vidět už z názvu, je kompilátorem Microsoftu, tedy programováním projektů do spustitelných programů atd.
Dříve použité, upravit kód pomocí txt notepadu, znovu zkompilovat pomocí msbuild, následovně:
Roslynje open-source .NET kompilátor od společnosti Microsoft Corporation. Kompilátor podporuje kompilaci kódu v C# a Visual Basicu a poskytuje bohaté API pro analýzu kódu. Snažíme se vytvořit nový.NET framework 4.6projektu, který pomocí VS 2019 vygeneruje nastavení MSBuild Project Generate Output Detail normálně, jak je znázorněno na obrázku níže:
Klikněte pravým tlačítkem na položku a pokuste se ji zregenerovat, jak je vidět níže:
1>------ Všechny rebuildy byly zahájeny: Project: ConsoleApp1, Konfigurace: Debugovat jakýkoli CPU ------ 1> Začátek je 2021/3/21 11:38:08. 1>GenerateBindingRedirections: 1> V ResolveAssemblyReferences nejsou navržena žádná svazující přesměrování. 1>GenerateTargetFrameworkMonikerAttribute: 1> přeskakování cíle "GenerateTargetFrameworkMonikerAttribute", protože všechny výstupní soubory jsou aktuální vzhledem k vstupním souborům. 1>CoreCompile: 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 Properties\AssemblyInfo.cs "obj\Debug\. NETFramework,Version=v4.6.AssemblyAttributes.cs" 1> Použití sdílené kompilace pro kompilátory z adresáře zadního sloupce: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn 1>_CopyAppConfigFile: 1> Kopírování souborů z "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config" do "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.exe.config"。 1>KopírovatSouboryDo Výstupního adresáře: 1> Kopírování souborů z "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe" do "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> Kopírování souborů z "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" do "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.pdb"。 1> 1> byla úspěšně generována. 1> 0 varování 1> 0 chyb 1> 1> Uplynulý čas 00:00:00.66 ========== Regenerovat všechny: 1 uspěje, 0 selže a 0 ========== přeskočeno Staženo z jiných článků na internetu, pouze pro referenci:
Vestavěný MSBuild v .NET Framework 4.0 nerozpoznává syntaxní funkce C# 6.0.
"MSBuild" => msbuild.exe, "Roslyn" => csc.exe
MSbuild je build systém Visual Studia. Volá kompilátor C# pro kompilaci projektu C#. Roslyn je C# kompilátor (a VB kompilátor). Proto msbuild používá Roslyn.
Roslyn však obsahuje víc než jen kompilátor. Obsahuje také plugin VS, který vám poskytne IDE funkce (seznamy dokončení, barvy, opravy kódu atd.).
Kromě toho je Roslyn API pro analýzu zdrojového kódu, které můžete použít ve svých aplikacích. V posledním případě existuje API nazvané MSBuildWorkspace, které lze použít k otevření projektu nebo řešení pro analýzu. Tento pracovní prostor používá MSBuild k nalezení všech částí projektu a řešení. Proto tato část Roslinu používá MSBuild.
Shrnutí:
Podle mého názoru je MSBuild kolekce Microsoft kompilátorů a možná není zodpovědný za kompilaci generace, ale pomůže nám zavolat Roslyn, aby zkompilovala kód v C#. Může také kompilovat kód v jiných jazycích a poté volat další odpovídající kompilátory.
Při kompilaci projektů v C# je rozhodujícím orgánem MSBuild a vykonavatelem Roslyn.
|