MSBuild: El Microsoft Build Engine es una plataforma para crear aplicaciones. Este motor, también conocido como MSBuild, proporciona un esquema XML para archivos de proyecto que controla cómo la plataforma de compilación gestiona y compila el software. Visual Studio usa MSBuild, pero MSBuild no depende de Visual Studio. Al llamar a msbuild.exe en un proyecto o archivo de solución, puedes programar y construir productos en un entorno sin Visual Studio instalado.
Introducir:El inicio de sesión del hipervínculo es visible.
Barabala dijo mucho, como se puede ver por el nombre, es el compilador de Microsoft, es decir, programando proyectos en programas ejecutables, etc.
Usado antes, modifica el código usando el bloc de notas txt, recompila con msbuild, de la siguiente manera:
Roslynes un compilador .NET de código abierto de Microsoft Corporation. El compilador soporta compilación de código en C# y Visual Basic y proporciona APIs de análisis de código enriquecidas. Intentamos crear uno nuevo.NET framework 4.6el proyecto, usando VS 2019, generará normalmente la configuración de Generar Detalle de Salida de MSBuild Proyecto, como se muestra en la imagen de abajo:
Haz clic derecho en el objeto para intentar regenerarlo, como se muestra a continuación:
1>------ Todas las reconstrucciones han sido iniciadas: Proyecto: ConsoleApp1, Configuración: Depurar cualquier CPU ------ 1> La hora de salida es 2021/3/21 11:38:08. 1>GenerateBindingRedirecciones: 1> No hay redirecciones de enlace sugeridas en ResolveAssemblyReferences. 1>GenerateTargetFrameworkMonikerAttribute: 1> es saltarse el destino "GenerateTargetFrameworkMonikerAttribute" porque todos los archivos de salida están actualizados en relación con los archivos 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 Propiedades\AssemblyInfo.cs "obj\Debug\. NETFramework, Version=v4.6.AssemblyAttributes.cs" 1> Utilizar compilación compartida para compiladores desde el directorio de la columna trasera: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn 1>_CopyAppConfigFile: 1> Copiar archivos desde "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config" a "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.exe.config"。 1>CopyFilesToOutputDirectory: 1> Copiar archivos desde "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe" a "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 archivos de "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" a "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.pdb"。 1> 1> se ha generado con éxito. 1> 0 advertencias 1> 0 errores 1> 1> Tiempo transcurrido 00:00:00.66 ========== Regenera todo: 1 tiene éxito, 0 falla y 0 ========== se omite Descargado de otros artículos en Internet, solo para referencia:
El MSBuild integrado de .NET Framework 4.0 no reconoce las características de sintaxis de C# 6.0.
"MSBuild" => msbuild.exe, "Roslyn" => csc.exe
MSbuild es el sistema de compilación de Visual Studio. Llama al compilador de C# para compilar el proyecto C#. Roslyn es un compilador de C# (y compilador de VB). Por lo tanto, msbuild usa Roslyn.
Sin embargo, Roslyn contiene más que un simple compilador. También incluye un plugin de VS que te ofrece funciones del IDE (listas de finalización, colores, correcciones de código, etc.).
Además, Roslyn es una API para analizar código fuente, que puedes usar en tus propias aplicaciones. En este último caso, existe una API llamada MSBuildWorkspace que puede usarse para abrir un proyecto o solución para su análisis. Este espacio de trabajo utiliza MSBuild para conocer todas las partes de un proyecto y solución. Por lo tanto, esta parte de Roslin utiliza MSBuild.
Resumen:
Según tengo entendido, MSBuild es un conjunto de compiladores de Microsoft, y puede que no sea responsable de compilar la generación, pero nos ayudará a llamar a Roslyn para compilar el código de C#. También puede compilar código en otros lenguajes y luego llamar a otros compiladores correspondientes.
Para compilar proyectos en C#, MSBuild es quien toma la decisión y Roslyn es la albacea.
|