MSBuild: Microsoft Build Engine je platforma za izdelavo aplikacij. Ta pogon, znan tudi kot MSBuild, zagotavlja XML shemo za projektne datoteke, ki nadzoruje, kako platforma za gradnjo obdeluje in gradi programsko opremo. Visual Studio uporablja MSBuild, vendar MSBuild ne temelji na Visual Studiu. S klicem msbuild.exe v projektni ali rešilni datoteki lahko načrtujete in gradite izdelke v okolju brez nameščenega Visual Studia.
Uvesti:Prijava do hiperpovezave je vidna.
Barabala je povedal veliko, kar je razvidno iz imena, da je prevajalec Microsofta, torej programira projekte v izvedljive programe itd.
Uporabljeno prej, spremenite kodo z txt notepadom, ponovno prevedite z msbuild, kot sledi:
Roslynje odprtokodni .NET prevajalnik podjetja Microsoft Corporation. Prevajalnik podpira prevajanje kode v C# in Visual Basicu ter ponuja bogate API-je za analizo kode. Poskušamo ustvariti novo.NET ogrodje 4.6projekt bo z uporabo VS 2019 normalno generiral nastavitev MSBuild Project Generate Output Detail, kot je prikazano na spodnji sliki:
Desni klik na element poskusite regenerirati, kot je prikazano spodaj:
1>------ Vse obnove so bile začete: Projekt: ConsoleApp1, Konfiguracija: Razhroščevanje kateregakoli procesorja ------ 1> Začetek je 2021/3/21 ob 11:38:08. 1>GenerateBindingPreusmeritve: 1> V ResolveAssemblyReferences ni predlaganih vezavnih preusmeritev. 1>GenerateTargetFrameworkMonikerAttribute: 1> je preskakovanje cilja "GenerateTargetFrameworkMonikerAttribute", ker so vse izhodne datoteke posodobljene glede na vhodne datoteke. 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> Uporaba skupnega prevajanja za prevajalnike iz mape zadnjih stolpcev: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn 1>_CopyAppConfigFile: 1> Kopiranje datotek iz "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config" v "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.exe.config"。 1>CopyFilesToOutputDirectory: 1> Kopiranje datotek iz "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe" v "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> Kopiranje datotek iz "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" v "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.pdb"。 1> 1> je bilo uspešno ustvarjeno. 1> 0 opozoril 1> 0 napak 1> 1> Pretekli čas 00:00:00.66 ========== Regeneriraj vse: 1 uspe, 0 ne uspe in 0 ========== preskoči Preneseno iz drugih člankov na internetu, samo za referenco:
Vgrajeni MSBuild .NET Framework 4.0 ne prepozna sintaktičnih funkcij C# 6.0.
"MSBuild" => msbuild.exe, "Roslyn" => csc.exe
MSbuild je gradbeni sistem Visual Studia. Pokliče C# prevajalnik za prevajanje C# projekta. Roslyn je C# prevajalnik (in VB prevajalnik). Zato msbuild uporablja Roslyn.
Vendar pa Roslyn vsebuje več kot le prevajalnik. Vključuje tudi VS vtičnik, ki ti ponuja IDE funkcije (sezname dokončanja, barve, popravke kode itd.).
Poleg tega je Roslyn API za analizo izvorne kode, ki ga lahko uporabite v svojih aplikacijah. Za zadnji primer obstaja API z imenom MSBuildWorkspace, ki se lahko uporabi za odpiranje projekta ali rešitve za analizo. To delovno okolje uporablja MSBuild za odkrivanje vseh delov projekta in rešitve. Zato ta del Roslina uporablja MSBuild.
Povzetek:
Po mojem razumevanju je MSBuild zbirka Microsoftovih prevajalnikov, in morda ni odgovoren za prevajanje generacije, a nam bo pomagal poklicati Roslyn za prevajanje c# kode. Lahko tudi prevede kodo v drugih jezikih in nato pokliče druge ustrezne prevajalnike.
Pri prevajanju C# projektov je MSBuild tisti, ki sprejema odločitve, Roslyn pa izvršiteljica.
|