MSBuild: De Microsoft Build Engine is een platform voor het bouwen van applicaties. Deze engine, ook bekend als MSBuild, levert een XML-schema voor projectbestanden dat bepaalt hoe het buildplatform software omgaat en bouwt. Visual Studio gebruikt MSBuild, maar MSBuild is niet afhankelijk van Visual Studio. Door msbuild.exe aan te roepen in een project- of oplossingsbestand, kun je producten plannen en bouwen in een omgeving zonder Visual Studio geïnstalleerd.
Voorstellen:De hyperlink-login is zichtbaar.
Barabala zei zoveel, zoals uit de naam te zien is, dat hij de compiler is van Microsoft, dat wil zeggen projecten programmeert tot uitvoerbare programma's, enzovoort.
Eerder gebruikt, pas de code aan met txt notepad, compileer opnieuw met msbuild, als volgt:
Roslynis een open-source .NET-compiler van Microsoft Corporation. De compiler ondersteunt C#- en Visual Basic-codecompilatie en biedt rijke code-analyse-API's. We proberen een nieuwe te creëren.NET framework 4.6project, met VS 2019, normaal de instelling MSBuild Project Generate Output Detail genereert, zoals te zien is in de onderstaande afbeelding:
Klik met de rechtermuisknop op het item om te proberen te regenereren, zoals hieronder weergegeven:
1>------ Alle rebuilds zijn gestart: Project: ConsoleApp1, Configuratie: Debuggen Elke CPU ------ 1> De starttijd is 2021/3/21, 11:38:08. 1>GenerateBindingRedirects: 1> Er zijn geen voorgestelde bindende doorverwijzingen in ResolveAssemblyReferences. 1>GenerateTargetFrameworkMonikerAttribute: 1> slaat het doelwit "GenerateTargetFrameworkMonikerAttribute" over omdat alle uitvoerbestanden up-to-date zijn ten opzichte van de invoerbestanden. 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> Gebruik gedeelde compilatie voor compilers uit de map met de achterkolom: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn 1>_CopyAppConfigFile: 1> Bestanden kopiëren van "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config" naar "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.exe.config"。 1>CopyFilesToOutputDirectory: 1> Bestanden kopiëren van "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe" naar "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> Bestanden kopiëren van "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" naar "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.pdb"。 1> 1> is succesvol gegenereerd. 1> 0 waarschuwingen 1> 0 fouten 1> 1> Verstreken tijd 00:00:00.66 ========== Regenereer allemaal: 1 slaagt, 0 faalt, en 0 ========== overgeslagen Gedownload van andere artikelen op het internet, alleen ter referentie:
De ingebouwde MSBuild van .NET Framework 4.0 herkent de syntaxisfuncties van C# 6.0 niet.
"MSBuild" => msbuild.exe, "Roslyn" => csc.exe
MSbuild is het buildsysteem van Visual Studio. Het roept de C#-compiler aan om het C#-project te compileren. Roslyn is een C#-compiler (en VB-compiler). Daarom gebruikt msbuild Roslyn.
Roslyn bevat echter meer dan alleen een compiler. Het bevat ook een VS-plugin die IDE-functies geeft (voltooiingslijsten, kleuren, codefixes, enz.).
Daarnaast is Roslyn een API voor het analyseren van broncode, die je in je eigen applicaties kunt gebruiken. Voor het laatste geval is er een API genaamd MSBuildWorkspace die gebruikt kan worden om een project of oplossing te openen voor analyse. Deze werkruimte gebruikt MSBuild om alle onderdelen van een project en oplossing te achterhalen. Daarom gebruikt dit deel van Roslin MSBuild.
Samenvatting:
Voor zover ik weet is MSBuild een verzameling Microsoft-compilers, en hij is misschien niet verantwoordelijk voor het compileren van de generatie, maar hij zal ons wel helpen Roslyn te bellen om de c#-code te compileren. Hij kan ook code compileren in andere talen en vervolgens andere bijbehorende compilers aanroepen.
Voor het compileren van C#-projecten is MSBuild de beslisser en Roslyn de uitvoerder.
|