Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 55049|Vastaus: 0

[Lähde] Ero Roslyn MSBuild -kääntäjän välillä

[Kopioi linkki]
Julkaistu 21.3.2021 11.55.39 | | | |
MSBuild: Microsoft Build Engine on alusta sovellusten rakentamiseen. Tämä moottori, joka tunnetaan myös nimellä MSBuild, tarjoaa XML-skeeman projektitiedostoille, joka ohjaa, miten rakennusalusta käsittelee ja rakentaa ohjelmistoja. Visual Studio käyttää MSBuildia, mutta MSBuild ei ole riippuvainen Visual Studiosta. Kutsumalla msbuild.exe projekti- tai ratkaisutiedostoon voit ajoittaa ja rakentaa tuotteita ympäristössä, jossa Visual Studio ei ole asennettuna.

Esitellä:Hyperlinkin kirjautuminen on näkyvissä.

Barabala sanoi paljon, kuten nimestä näkyy, hän on Microsoftin kääntäjä, eli ohjelmoi projekteja suoritettaviksi ohjelmiksi jne.

Aiemmin käytetty koodi on muokattu txt-muistiolevyllä, käännä uudelleen msbuildilla seuraavasti:

.NET-ohjelmien virheenkorjaus Notepadilla kotona tietokoneella kymmenen vuoden ajan
https://www.itsvse.com/thread-9419-1-1.html

Roslynon avoimen lähdekoodin .NET-kääntäjä Microsoft Corporationilta. Kääntäjä tukee C#:n ja Visual Basic -koodin kääntämistä ja tarjoaa monipuolisia koodianalyysirajapintoja.
Yritämme luoda uuden.NET framework 4.6projekti, käyttäen VS 2019:ää, luo MSBuild Project Generate Output Detail -asetuksen normaalisti, kuten alla olevassa kuvassa näkyy:



Napsauta kohdetta hiiren oikealla yrittääksesi regeneroida, kuten alla on esitetty:



1>------ Kaikki uudelleenrakennukset on käynnistetty: Projekti: ConsoleApp1, Konfigurointi: Debug Mikä tahansa prosessorin ------
1> Aloitusaika on 3.2021.2021 klo 11:38:08.
1>GenerateBindingOhjaukset:
1> ResolveAssemblyReferencesissa ei ole ehdotettuja sitovia uudelleenohjauksia.
1>GenerateTargetFrameworkMonikerAttribute:
1> ohittaa kohteen "GenerateTargetFrameworkMonikerAttribute", koska kaikki tulostiedostot ovat ajan tasalla suhteessa syötetiedostoihin.
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" /viite:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Core.dll" /viite:"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" /viite:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Net.Http.dll" /viite:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Xml.dll" /viite:"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> Käytä jaettua käännöstä kääntäjille takasarakkeiden hakemistosta: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn
1>_CopyAppConfigFile:
1> Tiedostojen kopioiminen "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config" -tiedostoista "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.exe.config"。
1>CopyFilesToOutputDirectory:
1> Tiedostojen kopiointi "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\obj\Debug\ConsoleApp1.exe" -tiedostoista "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> Tiedostojen kopioiminen "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" -tiedostoista "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.pdb"。
1>
1> on tuotettu onnistuneesti.
1> 0 varoitusta
1> 0 virhettä
1>
1> Kulunut aika 00:00:00.66
========== Regenerate kaikki: 1 onnistuu, 0 epäonnistuu ja 0 ========== ohitettu

Ladattu muista internet-artikkeleista, vain viitteeksi:


.NET Framework 4.0:n sisäänrakennettu MSBuild ei tunnista C# 6.0 -syntaksiominaisuuksia.

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

MSbuild on Visual Studion rakennusjärjestelmä. Se kutsuu C#-kääntäjää kääntämään C#-projektin. Roslyn on C#-kääntäjä (ja VB-kääntäjä). Siksi msbuild käyttää Roslynia.

Roslyn sisältää kuitenkin enemmän kuin pelkän kääntäjän. Mukana on myös VS-lisäosa, joka tarjoaa IDE-ominaisuuksia (viimeistelylistat, värit, koodikorjaukset jne.).

Lisäksi Roslyn on API lähdekoodin analysointiin, jota voit käyttää omissa sovelluksissasi. Viimeisessä tapauksessa on olemassa API nimeltä MSBuildWorkspace, jota voidaan käyttää projektin tai ratkaisun avaamiseen analyysiä varten. Tämä työtila käyttää MSBuildia löytääkseen kaikki projektin ja ratkaisun osat. Siksi tämä osa Roslinista käyttää MSBuildia.


Yhteenveto:

Oma käsitykseni mukaan MSBuild on Microsoftin kääntäjien kokoelma, eikä hän ehkä ole vastuussa generoinnin kääntämisestä, mutta hän auttaa meitä kutsumaan Roslynin kääntämään c#-koodin. Hän voi myös kääntää koodia muilla kielillä ja kutsua muita vastaavia kääntäjiä.

C#-projektien kokoamisessa MSBuild on päätöksentekijä ja Roslyn toimeenpanija.





Edellinen:ASP.NET Core (VI) DI saa manuaalisesti menetelmän objektien injektioon
Seuraava:.NET/C# Emit generoi kokoonpanoja dynaamisesti
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com