Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 55049|Odpověď: 0

[Zdroj] Rozdíl mezi kompilátorem Roslyn MSBuild

[Kopírovat odkaz]
Zveřejněno 21.03.2021 11:55:39 | | | |
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ě:

Debugování .NET programů pomocí Notepadu doma na počítači po dobu deseti let
https://www.itsvse.com/thread-9419-1-1.html

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.





Předchozí:ASP.NET Core (VI) DI ručně získává metodu vstřikování objektů
Další:.NET/C# Emit dynamicky generuje assemblies
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com