Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 55049|Válasz: 0

[Forrás] A különbség a Roslyn MSBuild fordító között

[Linket másol]
Közzétéve 2021. 03. 21. 11:55:39 | | | |
MSBuild: A Microsoft Build Engine egy platform, amely alkalmazások építésére szolgál. Ez a motor, más néven MSBuild, XML sémát biztosít a projektfájlok számára, amely szabályozza, hogyan kezeli és építi a szoftvert a build platform. A Visual Studio az MSBuild-et használja, de az MSBuild nem függ a Visual Studio-tól. Ha msbuild.exe meghívása egy projektben vagy megoldásfájlban történik, ütemezheted és készítheted a termékeket olyan környezetben, ahol nincs Visual Studio telepítve.

Bevezet:A hiperlink bejelentkezés látható.

Barabala rengeteget mondott, ahogy a névből is látszik, ő a Microsoft fordítója, vagyis projekteket futtatható programokba programoz, stb.

Korábban használta: módosítsd a kódot txt jegyzettömbben, fordítsd újra msbuild-lel, az alábbiak szerint:

Tíz éven át a .NET programok hibakeresése Notepaddal otthon számítógépen
https://www.itsvse.com/thread-9419-1-1.html

Roslyna Microsoft Corporation nyílt forráskódú .NET fordítója. A fordító támogatja a C# és Visual Basic kódfordítást, és gazdag kódelemző API-kat biztosít.
Próbálunk újat létrehozni.NET framework 4.6a VS 2019 használatával generálja az MSBuild Project Generate Output Detail beállítást normálisan, ahogy az alábbi képen is látható:



Jobb kattintással a tárgyra, hogy megpróbáld regenerálni, ahogy az alábbiakban látható:



1>------ Minden újraépítés elindult: Projekt: ConsoleApp1, Konfiguráció: Bármilyen CPU hibakeresése ------
1> A kezdési időpont: 2021/3/21, 11:38:08.
1>GenerateBindingÁtredirects:
1> A ResolveAssemblyReferences-ben nincsenek javasolt kötelező átirányítások.
1>GenerateTargetFrameworkMonikerAttribute:
Az 1> kihagyja a célpontot "GenerateTargetFrameworkMonikerAttribute", mert minden kimeneti fájl naprakész a bemeneti fájlokhoz képest.
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\. NETFrame, Version=v4.6.AssemblyAttributes.cs"
1> Használj megosztott fordítást a hátsó oszlop könyvtárából származó fordítókhoz: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn
1>_CopyAppConfigFile:
1> Fájlok másolása a "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config" fájlról a "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\bin\Debug\" címre ConsoleApp1.exe.config"。
1>CopyFilesToOutputDirectory:
1> Fájlok másolása a "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe" fájlról a "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\" címre ConsoleApp1.exe"。
1> ConsoleApp1 -> C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ConsoleApp1.exe
1> Fájlok másolása a "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" fájlokra a "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\" címre ConsoleApp1.pdb"。
1>
1> sikeresen generált.
1> 0 figyelmeztetés
1> 0 hiba
1>
1> Eltelt idő 00:00:00.66
========== Regenerálj mindet: 1 sikerrel, 0 sikerrel, és 0 ========== kihagyva

Más internetes cikkekből letöltve, csak hivatkozásként:


A .NET Framework 4.0 beépített MSBuild nem ismeri fel a C# 6.0 szintaxisfunkciókat.

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

Az MSbuild a Visual Studio build rendszere. A C# fordítót hívja a C# projekt fordításához. Roslyn egy C# fordító (és VB fordító). Ezért az msbuild Roslyn-t használja.

Azonban a Roslyn több mint egy fordítót tartalmaz. Tartalmaz egy VS plugint is, amely IDE funkciókat kínál (befejezési listák, színek, kódjavítások stb.).

Ezen felül a Roslyn egy API a forráskód elemzésére, amelyet saját alkalmazásaidban is használhatsz. Az utolsó esetben létezik egy MSBuildWorkspace nevű API, amellyel egy projektet vagy megoldást lehet elemzésre nyitni. Ez a munkaterület MSBuild segítségével megismeri a projekt és megoldás minden részét. Ezért Roslin ezen része MSBuild rendszert használ.


Összefoglalás:

Saját értelmezésem szerint az MSBuild Microsoft fordítóinak gyűjteménye, és lehet, hogy nem ő felelős a generáció fordításáért, de segíteni fog hívni Roslint a c# kód fordításához. Képes kódot fordítani más nyelveken is, majd más megfelelő fordítókat hívni.

A C# projektek összeállításában az MSBuild a döntéshozó, Roslyn pedig a végrehajtó.





Előző:ASP.NET Core (VI) DI manuálisan megszerzi az objektumok befecskendezésének módszerét
Következő:.NET/C# Dinamikusan generál összeállításokat
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com