MSBuild: Microsoft Build Engine е платформа за създаване на приложения. Този двигател, известен още като MSBuild, предоставя XML схема за проектни файлове, която контролира как платформата за сглобяване обработва и изгражда софтуера. Visual Studio използва MSBuild, но MSBuild не разчита на Visual Studio. Като извиквате msbuild.exe в проект или файл с решение, можете да планирате и изграждате продукти в среда без инсталиран Visual Studio.
Представям:Входът към хиперлинк е видим.
Барабана каза толкова много, както се вижда от името, той е компилатор на Microsoft, тоест програмира проекти в изпълними програми и т.н.
Използвано преди, модифициране на кода с txt notepad, компилиране с msbuild, както следва:
Рослине open-source .NET компилатор от Microsoft Corporation. Компилаторът поддържа компилация на код на C# и Visual Basic и предоставя богати API за анализ на кода. Опитваме се да създадем нов.NET фреймуърк 4.6проект, използващ VS 2019, ще генерира настройката MSBuild Project Generate Output Detail по нормален начин, както е показано на изображението по-долу:
Кликнете с десен бутон върху елемента, за да опитате да регенерирате, както е показано по-долу:
1>------ Всички ребилдове са инициирани: Проект: ConsoleApp1, Конфигурация: Отстраняване на грешки Всеки процесор ------ 1> Началният час е 2021/3/21 11:38:08. 1>GenerateBindingRedirects: 1> В ResolveAssemblyReferences няма предложени пренасочвания за свързване. 1>GenerateTargetFrameworkMonikerAttribute: 1> пропуска целевата "GenerateTargetFrameworkMonikerAttribute", защото всички изходни файлове са актуални спрямо входните файлове. 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 Свойства\AssemblyInfo.cs "obj\Debug\. NETFramework,Version=v4.6.AssemblyAttributes.cs" 1> Използвайте споделена компилация за компилатори от директорията на задната колона: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn 1>_CopyAppConfigFile: 1> Копиране на файлове от "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> Копиране на файлове от "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> Копиране на файлове от "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> е успешно генериран. 1> 0 предупреждения 1> 0 грешки 1> 1> Изминало време 00:00:00.66 ========== Регенериране на всички: 1 успява, 0 неуспешен и 0 ========== пропуснат Изтеглено от други статии в интернет, само за справка:
Вграденият MSBuild в .NET Framework 4.0 не разпознава синтактичните функции на C# 6.0.
"MSBuild" => msbuild.exe, "Рослин" => csc.exe
MSbuild е системата за сглобяване на Visual Studio. Той извиква компилатора на C#, за да компилира C# проекта. Roslyn е компилатор на C# (и VB компилатор). Затова msbuild използва Roslyn.
Въпреки това, Roslyn съдържа повече от просто компилатор. Включва и VS плъгин, който ти дава IDE функции (списъци с завършване, цветове, корекции на код и др.).
Освен това Roslyn е API за анализ на изходния код, който можете да използвате във вашите собствени приложения. За последния случай има API, наречен MSBuildWorkspace, който може да се използва за отваряне на проект или решение за анализ. Това работно пространство използва MSBuild, за да разбере всички части на проект и решение. Затова тази част на Roslin използва MSBuild.
Резюме:
Моето лично разбиране е, че MSBuild е колекция от компилатори на Microsoft и той може да не е отговорен за компилирането на генерацията, но ще ни помогне да се обадим на Roslyn да компилира c# кода. Той може също да компилира код на други езици и след това да извиква други съответни компилатори.
За компилиране на C# проекти, MSBuild взема решения, а Рослин е изпълнителят.
|