Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 55049|Svare: 0

[Kilde] Forskjellen mellom Roslyn MSBuild-kompilatoren

[Kopier lenke]
Publisert på 21.03.2021 11:55:39 | | | |
MSBuild: Microsoft Build Engine er en plattform for å bygge applikasjoner. Denne motoren, også kjent som MSBuild, gir et XML-skjema for prosjektfiler som styrer hvordan byggeplattformen håndterer og bygger programvare. Visual Studio bruker MSBuild, men MSBuild er ikke avhengig av Visual Studio. Ved å kalle msbuild.exe i en prosjekt- eller løsningsfil kan du planlegge og bygge produkter i et miljø uten Visual Studio installert.

Innføre:Innloggingen med hyperkoblingen er synlig.

Barabala sa så mye, som navnet kan se, han er kompilatoren av Microsoft, altså programmerer prosjekter inn i kjørbare programmer, osv.

Brukt før, modifiser koden med txt notepad, kompiler på nytt med msbuild, som følger:

Feilsøking av .NET-programmer med Notepad hjemme på en datamaskin i ti år
https://www.itsvse.com/thread-9419-1-1.html

Roslyner en åpen kildekode .NET-kompilator fra Microsoft Corporation. Kompilatoren støtter C#- og Visual Basic-kodekompilering og tilbyr rike kodeanalyse-API-er.
Vi prøver å skape en ny.NET-rammeverk 4.6prosjektet, som bruker VS 2019, vil generere innstillingen MSBuild Project Generate Output Detail normalt, som vist på bildet nedenfor:



Høyreklikk på elementet for å prøve å regenerere, som vist nedenfor:



1>------ Alle ombygginger er igangsatt: Prosjekt: ConsoleApp1, Konfigurasjon: Debug Any CPU ------
1> Starttidspunktet er 2021/3/21 11:38:08.
1>GenerateBindingRedirects:
1> Det finnes ingen foreslåtte bindende omdirigeringer i ResolveAssemblyReferences.
1>GenerateTargetFrameworkMonikerAttribute:
1> hopper over målet "GenerateTargetFrameworkMonikerAttribute" fordi alle utdatafiler er oppdaterte i forhold til inndatafilene.
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> Bruk delt kompilering for kompilatorer fra bakkolonnekatalogen: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn
1>_CopyAppConfigFile:
1> Kopierer filer fra "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config" til "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.exe.config"。
1>CopyFilesToOutputDirectory:
1> Kopierer filer fra "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe" til "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> Kopierer filer fra "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" til "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.pdb"。
1>
1> har blitt generert med suksess.
1> 0 advarsler
1> 0 feil
1>
1> Gått tid 00:00:00.66
========== Regenerer alle: 1 lykkes, 0 mislykkes, og 0 ========== hoppet over

Lastet ned fra andre artikler på Internett, kun for referanse:


.NET Framework 4.0s innebygde MSBuild gjenkjenner ikke syntaksfunksjonene i C# 6.0.

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

MSbuild er Visual Studios byggesystem. Den kaller C#-kompilatoren for å kompilere C#-prosjektet. Roslyn er en C#-kompilator (og VB-kompilator). Derfor bruker msbuild Roslyn.

Men Roslyn inneholder mer enn bare en kompilator. Den inkluderer også en VS-plugin som gir deg IDE-funksjoner (fullføringslister, farger, koderettinger osv.).

I tillegg er Roslyn et API for analyse av kildekode, som du kan bruke i dine egne applikasjoner. For det siste tilfellet finnes det et API kalt MSBuildWorkspace som kan brukes til å åpne et prosjekt eller en løsning for analyse. Dette arbeidsområdet bruker MSBuild for å finne ut alle deler av et prosjekt og en løsning. Derfor bruker denne delen av Roslin MSBuild.


Sammendrag:

Min egen forståelse er at MSBuild er en samling av Microsoft-kompilatorer, og han er kanskje ikke ansvarlig for å kompilere genereringen, men han vil hjelpe oss med å ringe Roslyn for å kompilere c#-koden. Han kan også kompilere kode i andre språk og deretter kalle andre tilsvarende kompilatorer.

For å kompilere C#-prosjekter er MSBuild beslutningstaker og Roslyn er eksekutor.





Foregående:ASP.NET Core (VI) DI henter manuelt metoden for å injisere objekter
Neste:.NET/C# Emitter dynamisk genererer samlinger
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com