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:
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.
|