MSBuild: Microsoft Build Engine on platvorm rakenduste loomiseks. See mootor, tuntud ka kui MSBuild, pakub projektifailidele XML-skeemi, mis kontrollib, kuidas ehitusplatvorm tarkvara käsitleb ja ehitab. Visual Studio kasutab MSBuildi, aga MSBuild ei sõltu Visual Studiost. Kutsudes msbuild.exe projekti või lahendusfaili sisse, saad ajastada ja luua tooteid keskkonnas, kus Visual Studio pole paigaldatud.
Tutvustada:Hüperlingi sisselogimine on nähtav.
Barabala ütles nii palju, nagu nimest näha, on ta Microsofti kompileerija, st programmeerib projekte käivitatavateks programmideks jne.
Varem kasutatud: muuta koodi txt notepadiga, kompileerida uuesti msbuildiga järgmiselt:
Roslynon Microsoft Corporationi avatud lähtekoodiga .NET kompilaator. Kompilaator toetab C# ja Visual Basic koodikompileerimist ning pakub rikkalikke koodianalüüsi API-sid. Püüame luua uue.NET raamistik 4.6projekt, kasutades VS 2019, genereerib MSBuild Project Generate Output Detail seade tavapäraselt, nagu alloleval pildil näidatud:
Paremklõpsa esemel, et proovida regenereerida, nagu allpool näidatud:
1>------ Kõik ümberehitused on algatatud: Projekt: ConsoleApp1, Seadistus: Siluda ükskõik milline protsessori ------ 1> Algusaeg on 2021/3/21 11:38:08. 1>GenereeriSidumineSuunab: 1> ResolveAssemblyReferencesis ei ole soovitatud siduvaid ümbersuunamisi. 1>GenerateTargetFrameworkMonikerAttribute: 1> jätab sihtmärgi "GenerateTargetFrameworkMonikerAttribute" vahele, sest kõik väljundfailid on sisendfailide suhtes ajakohased. 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 /optimeeri- /out:obj\Debug\ConsoleApp1.exe /subsystemversion:6.00 /target:exe /utf8output / deterministic+ /langversion:7.3 Program.cs Properties\AssemblyInfo.cs "obj\Debug\. NETFrametöö, Version=v4.6.AssemblyAttributes.cs" 1> Kasuta jagatud kompileerimist kompilaatorite jaoks tagumise veeru kataloogist: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn 1>_CopyAppConfigFile: 1> Failide kopeerimine aadressilt "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config" aadressile "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.exe.config"。 1>CopyFilesToOutputDirectory: 1> Failide kopeerimine "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\obj\Debug\ConsoleApp1.exe" failidest "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> Failide kopeerimine aadressilt "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" aadressile "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.pdb"。 1> 1> on edukalt genereeritud. 1> 0 hoiatust 1> 0 viga 1> 1> Möödunud aeg 00:00:00.66 ========== Regenereeri kõik: 1 õnnestub, 0 ebaõnnestub ja 0 ========== vahele jäetud Allalaaditud teistest artiklitest internetis, ainult viitamiseks:
.NET Framework 4.0 sisseehitatud MSBuild ei tunnista C# 6.0 süntaksi funktsioone.
"MSBuild" => msbuild.exe, "Roslyn" => csc.exe
MSbuild on Visual Studio ehitussüsteem. See kutsub C# kompilaatori C# projekti kompileerimiseks. Roslyn on C# kompilaator (ja VB kompilaator). Seetõttu kasutab msbuild Roslyni.
Kuid Roslyn sisaldab rohkem kui lihtsalt kompilaatorit. Lisaks sisaldab see VS pluginat, mis annab sulle IDE funktsioone (lõpetamisnimekirjad, värvid, koodiparandused jne).
Lisaks on Roslyn API lähtekoodi analüüsimiseks, mida saad kasutada oma rakendustes. Viimase puhul on olemas API nimega MSBuildWorkspace, mida saab kasutada projekti või lahenduse avamiseks analüüsiks. See tööruum kasutab MSBuildi, et leida kõik projekti ja lahenduse osad. Seetõttu kasutab see Roslini osa MSBuildi.
Kokkuvõte:
Minu arusaam on, et MSBuild on Microsofti kompilaatorite kogum ja ta ei pruugi vastutada generatsiooni kompileerimise eest, kuid ta aitab meil kutsuda Roslyni c# koodi kompileerima. Ta suudab ka kompileerida koodi teistes keeltes ja seejärel kutsuda teisi vastavaid kompilaatoriid.
C# projektide kompileerimisel on otsustaja MSBuild ja Roslyn täitja.
|