MSBuild: O Microsoft Build Engine é uma plataforma para construir aplicações. Esse motor, também conhecido como MSBuild, fornece um esquema XML para arquivos de projeto que controla como a plataforma de compilação lida e constrói softwares. O Visual Studio usa o MSBuild, mas o MSBuild não depende do Visual Studio. Ao chamar msbuild.exe em um projeto ou arquivo de solução, você pode agendar e construir produtos em um ambiente sem o Visual Studio instalado.
Apresentar:O login do hiperlink está visível.
Barabala disse muito, como pode ser visto pelo nome, ele é o compilador da Microsoft, ou seja, programando projetos em programas executáveis, etc.
Usado antes, modificar o código usando o bloco de notas txt, recompilar com msbuild, da seguinte forma:
Roslyné um compilador .NET de código aberto da Microsoft Corporation. O compilador suporta compilação de código em C# e Visual Basic e oferece APIs avançadas de análise de código. Tentamos criar um novo.NET framework 4.6O projeto, usando VS 2019, gerará normalmente a configuração MSBuild Project Generate Output Detail, conforme mostrado na imagem abaixo:
Clique com o botão direito no item para tentar regenerar, como mostrado abaixo:
1>------ Todas as reconstruções foram iniciadas: Projeto: ConsoleApp1, Configuração: Depurar qualquer CPU ------ 1> O horário de início é 2021/3/21 11:38:08. 1>GenerateBindingRedireciona: 1> Não há redirecionamentos de vinculação sugeridos no ResolveAssemblyReferences. 1>ImagemImagemBaseTargetBaseGenerar: 1> é pular o alvo "GenerateTargetFrameworkMonikerAttribute" porque todos os arquivos de saída estão atualizados em relação aos arquivos de entrada. 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> Use compilação compartilhada para compiladores a partir do diretório da coluna de trás: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn 1>_CopyAppConfigFile: 1> Copiar arquivos de "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config" para "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.exe.config"。 1>CopyFilesToOutputDirectory: 1> Copiar arquivos de "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe" para "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> Copiar arquivos de "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" para "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.pdb"。 1> 1> foi gerado com sucesso. 1> 0 avisos 1> 0 erros 1> 1> Tempo Decorrido 00:00:00.66 ========== Regenerar todos: 1 tem sucesso, 0 falha e 0 ========== pulado Baixado de outros artigos na Internet, apenas para referência:
O MSBuild embutido do .NET Framework 4.0 não reconhece recursos da sintaxe C# 6.0.
"MSBuild" => msbuild.exe, "Roslyn" => csc.exe
MSbuild é o sistema de build do Visual Studio. Ele chama o compilador C# para compilar o projeto C#. Roslyn é um compilador C# (e compilador VB). Portanto, o msbuild usa Roslyn.
No entanto, Roslyn contém mais do que apenas um compilador. Também inclui um plugin VS que oferece recursos do IDE (listas de completação, cores, correções de código, etc.).
Além disso, o Roslyn é uma API para análise do código-fonte, que você pode usar em suas próprias aplicações. No último caso, existe uma API chamada MSBuildWorkspace que pode ser usada para abrir um projeto ou solução para análise. Este espaço de trabalho usa o MSBuild para descobrir todas as partes de um projeto e solução. Portanto, essa parte de Roslin usa MSBuild.
Resumo:
Pelo que entendo, o MSBuild é um conjunto de compiladores da Microsoft, e ele pode não ser responsável por compilar a geração, mas vai nos ajudar a chamar a Roslyn para compilar o código c#. Ele também pode compilar código em outras linguagens e depois chamar outros compiladores correspondentes.
Para compilar projetos em C#, o MSBuild é o tomador de decisão e Roslyn é a executora.
|