Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 55049|Odpoveď: 0

[Zdroj] Rozdiel medzi kompilátorom Roslyn MSBuild

[Kopírovať odkaz]
Zverejnené 21. 3. 2021 11:55:39 | | | |
MSBuild: Microsoft Build Engine je platforma na tvorbu aplikácií. Tento engine, známy aj ako MSBuild, poskytuje XML schému pre projektové súbory, ktorá riadi, ako build platforma spracováva a vytvára softvér. Visual Studio používa MSBuild, ale MSBuild nezávisí od Visual Studia. Volaním msbuild.exe v projekte alebo súbore riešenia môžete plánovať a vytvárať produkty v prostredí bez nainštalovaného Visual Studia.

Zavádzať:Prihlásenie na hypertextový odkaz je viditeľné.

Barabala povedal toľko, čo je vidieť už z názvu, je kompilátorom Microsoftu, teda programovaním projektov do spustiteľných programov a podobne.

Použité predtým, upraviť kód pomocou txt notepadu, prekompilovať pomocou msbuild, nasledovne:

Debugovanie .NET programov pomocou Notepadu doma na počítači desať rokov
https://www.itsvse.com/thread-9419-1-1.html

Roslynje open-source .NET kompilátor od spoločnosti Microsoft Corporation. Kompilátor podporuje kompiláciu kódu v C# a Visual Basicu a poskytuje bohaté API pre analýzu kódu.
Snažíme sa vytvoriť nový.NET framework 4.6projektu, používajúc VS 2019, vygeneruje nastavenie MSBuild Project Generate Output Detail normálne, ako je znázornené na obrázku nižšie:



Kliknite pravým tlačidlom myši na položku, aby ste sa pokúsili zregenerovať, ako je znázornené nižšie:



1>------ Všetky rebuildy boli spustené: Projekt: ConsoleApp1, Konfigurácia: Debugovať akýkoľvek CPU ------
1> Začiatok je 2021/3/21 11:38:08.
1>GenerovaťPresmerovania:
1> V ResolveAssemblyReferences nie sú navrhované viazané presmerovania.
1>GenerateTargetFrameworkMonikerAttribute:
1> preskakovanie cieľa "GenerateTargetFrameworkMonikerAttribute", pretože všetky výstupné súbory sú aktuálne vzhľadom na vstupné súbory.
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" /referencia:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\mscorlib.dll" /referencia:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Core.dll" /referencia:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Data.DataSetExtensions.dll" /referencia:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Data.dll" /referencia:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.dll" /referencia:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Net.Http.dll" /referencia:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Xml.dll" /referencia:"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 Vlastnosti\AssemblyInfo.cs "obj\Debug\. NETFramework,Version=v4.6.AssemblyAttributes.cs"
1> Použitie zdieľanej kompilácie pre kompilátory z adresára zadného stĺpca: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn
1>_CopyAppConfigFile:
1> Kopírovanie súborov 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>CopyFilesToOutputDirectory:
1> Kopírovanie súborov 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írovanie súborov 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> bol úspešne generovaný.
1> 0 varovaní
1> 0 chýb
1>
1> Uplynulý čas 00:00:00.66
========== Regeneruj všetkých: 1 uspeje, 0 zlyhá a 0 ========== preskočených

Stiahnuté z iných článkov na internete, len pre referenciu:


Vstavaný MSBuild .NET Framework 4.0 nerozpoznáva syntaxové funkcie C# 6.0.

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

MSbuild je build systém Visual Studia. Volá kompilátor C# na kompiláciu projektu C#. Roslyn je C# kompilátor (a VB kompilátor). Preto msbuild používa Roslyn.

Roslyn však obsahuje viac než len kompilátor. Obsahuje tiež VS plugin, ktorý poskytuje IDE funkcie (zoznamy dokončení, farby, opravy kódu a pod.).

Okrem toho je Roslyn API na analýzu zdrojového kódu, ktoré môžete použiť vo vlastných aplikáciách. V poslednom prípade existuje API s názvom MSBuildWorkspace, ktoré možno použiť na otvorenie projektu alebo riešenia na analýzu. Tento pracovný priestor používa MSBuild na zistenie všetkých častí projektu a riešenia. Preto táto časť Roslinu používa MSBuild.


Súhrn:

Podľa mojich vlastných informácií je MSBuild zbierka Microsoft kompilátorov a možno nie je zodpovedný za kompiláciu generácie, ale pomôže nám zavolať Roslyn, aby skompilovala c# kód. Dokáže tiež kompilovať kód v iných jazykoch a potom volať ďalšie zodpovedajúce kompilátory.

Pri kompilácii C# projektov je rozhodujúcim orgánom MSBuild a vykonávateľkou Roslyn.





Predchádzajúci:ASP.NET Core (VI) DI manuálne získava metódu injektovania objektov
Budúci:.NET/C# Emit dynamicky generuje zostavy
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com