MSBuild: "Microsoft Build Engine" yra programų kūrimo platforma. Šis variklis, taip pat žinomas kaip MSBuild, pateikia projekto failų XML schemą, kuri kontroliuoja, kaip kūrimo platforma tvarko ir kuria programinę įrangą. "Visual Studio" naudoja "MSBuild", bet "MSBuild" nepriklauso nuo "Visual Studio". Iškviesdami msbuild.exe į projektą arba sprendimo failą, galite planuoti ir kurti produktus aplinkoje, kurioje neįdiegta "Visual Studio".
Pristatyti:Hipersaito prisijungimas matomas.
Barabala sakė tiek daug, kaip matyti iš pavadinimo, jis yra "Microsoft" kompiliatorius, tai yra, programuojantis projektus į vykdomąsias programas ir kt.
Naudojamas anksčiau, modifikuoti kodą naudojant txt Notepad, perkompiliuoti su msbuild, taip:
Roslynyra atvirojo kodo .NET kompiliatorius iš Microsoft Corporation. Kompiliatorius palaiko C# ir Visual Basic kodo kompiliavimą ir teikia išsamias kodo analizės API. Mes stengiamės sukurti naują.NET Framework 4.6projektas, naudojant VS 2019, paprastai sugeneruos MSBuild projekto generavimo išvesties detalių nustatymą, kaip parodyta paveikslėlyje žemiau:
Dešiniuoju pelės mygtuku spustelėkite elementą, kad pabandytumėte atkurti, kaip parodyta toliau:
1>------ Visi atkūrimai buvo inicijuoti: Projektas: ConsoleApp1, Konfigūracija: Derinkite bet kokį procesorių ------ 1> Pradžios laikas – 2021/3/21 11:38:08. 1>GenerateBindingRedirects: 1> ResolveAssemblyReferences nėra siūlomų privalomų peradresavimų. 1>GenerateTargetFrameworkMonikerAttribute: 1> praleidžia tikslą "GenerateTargetFrameworkMonikerAttribute", nes visi išvesties failai yra atnaujinti, palyginti su įvesties failais. 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> Naudokite bendrai naudojamą kompiliavimą kompiliatoriams iš galinio stulpelio katalogo: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn 1>_CopyAppConfigFile: 1> Failų kopijavimas iš "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config" į "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.exe.config"。 1>CopyFilesToOutputDirectory: 1> Failų kopijavimas iš "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe" į "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> Failų kopijavimas iš "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" į "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.pdb"。 1> 1> sėkmingai sugeneruotas. 1> 0 įspėjimai 1> 0 klaidų 1> 1> Praėjęs laikas 00:00:00.66 ========== Atkurti viską: 1 pavyksta, 0 nepavyksta, o 0 ========== praleistas Atsisiųsta iš kitų straipsnių internete, tik nuoroda:
.NET Framework 4.0 integruota MSBuild neatpažįsta C# 6.0 sintaksės funkcijų.
"MSBuild" => msbuild.exe, "Roslyn" => csc.exe
"MSbuild" yra "Visual Studio" kūrimo sistema. Jis iškviečia C# kompiliatorių, kad kompiliuotų C# projektą. Roslyn yra C# kompiliatorius (ir VB kompiliatorius). Todėl msbuild naudoja Roslyn.
Tačiau Roslyn yra daugiau nei tik kompiliatorius. Jame taip pat yra VS papildinys, suteikiantis IDE funkcijas (užbaigimo sąrašus, spalvas, kodo pataisymus ir kt.).
Be to, Roslyn yra šaltinio kodo analizės API, kurią galite naudoti savo programose. Paskutiniu atveju yra API, vadinama MSBuildWorkspace, kurią galima naudoti norint atidaryti projektą ar sprendimą analizei. Ši darbo sritis naudoja MSBuild, kad sužinotų visas projekto ir sprendimo dalis. Todėl ši Roslin dalis naudoja MSBuild.
Suvestinė:
Mano supratimu, MSBuild yra "Microsoft" kompiliatorių rinkinys, ir jis gali būti neatsakingas už kartos kompiliavimą, bet jis padės mums paskambinti Roslyn kompiliuoti c# kodą. Jis taip pat gali kompiliuoti kodą kitomis kalbomis ir tada paskambinti kitiems atitinkamiems kompiliatoriams.
Kompiliuojant C# projektus, MSBuild yra sprendimų priėmėjas, o Roslyn yra vykdytojas.
|