MSBuild: Il Microsoft Build Engine è una piattaforma per la creazione di applicazioni. Questo motore, noto anche come MSBuild, fornisce uno schema XML per i file di progetto che controlla come la piattaforma di compilazione gestisce e costruisce il software. Visual Studio usa MSBuild, ma MSBuild non dipende da Visual Studio. Chiamando msbuild.exe in un progetto o file di soluzione, puoi programmare e costruire prodotti in un ambiente senza Visual Studio installato.
Introdurre:Il login del link ipertestuale è visibile.
Barabala ha detto molto, come si può vedere dal nome, che è il compilatore di Microsoft, cioè programmando progetti in programmi eseguibili, ecc.
Usato in precedenza, modifica il codice usando il blocco note txt, ricompila con msbuild, come segue:
Roslynè un compilatore .NET open-source della Microsoft Corporation. Il compilatore supporta la compilazione di codice in C# e Visual Basic e fornisce API di analisi del codice avanzate. Cerchiamo di crearne uno nuovo.NET framework 4.6il progetto, utilizzando VS 2019, genererà normalmente l'impostazione MSBuild Project Generate Output Detail, come mostrato nell'immagine qui sotto:
Clicca con il tasto destro sull'oggetto per provare a rigenerarlo, come mostrato qui sotto:
1>------ Tutte le ricostruzioni sono state avviate: Progetto: ConsoleApp1, Configurazione: Debug qualsiasi CPU ------ 1> L'orario di partenza è 2021/3/21 11:38:08. 1>GenerateBindingRedirects: 1> Non ci sono redirect di binding suggeriti in ResolveAssemblyReferences. 1>GenerateTargetFrameworkMonikerAttribute: 1> salta il target "GenerateTargetFrameworkMonikerAttribute" perché tutti i file di output sono aggiornati rispetto ai file di input. 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 / deterministico+ /langversion:7.3 Program.cs Proprietà\AssemblyInfo.cs "obj\Debug\. NETFramework, Version=v4.6.AssemblyAttributes.cs" 1> Usare la compilazione condivisa per i compilatori dalla cartella della colonna posteriore: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn 1>_CopyAppConfigFile: 1> Copiare file da "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>CopiaFileADirectoryOutput: 1> Copiare file da "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> Copiare file da "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> è stato generato con successo. 1> 0 avvisi 1> 0 errori 1> 1> Tempo trascorso 00:00:00.66 ========== Rigenera tutti: 1 ha successo, 0 fallisce e 0 ========== saltato Scaricato da altri articoli su Internet, solo per riferimento:
Il MSBuild integrato di .NET Framework 4.0 non riconosce le caratteristiche della sintassi C# 6.0.
"MSBuild" => msbuild.exe, "Roslyn" => csc.exe
MSbuild è il sistema di build di Visual Studio. Chiama il compilatore C# per compilare il progetto C#. Roslyn è un compilatore C# (e compilatore VB). Perciò, msbuild usa Roslyn.
Tuttavia, Roslyn contiene più di un semplice compilatore. Include anche un plugin VS che ti offre funzionalità IDE (liste di completamento, colori, correzioni di codice, ecc.).
Inoltre, Roslyn è un'API per l'analisi del codice sorgente, che puoi utilizzare nelle tue applicazioni. Per quest'ultimo caso, esiste un'API chiamata MSBuildWorkspace che può essere utilizzata per aprire un progetto o una soluzione per l'analisi. Questo spazio di lavoro utilizza MSBuild per scoprire tutte le parti di un progetto e di una soluzione. Pertanto, questa parte di Roslin utilizza MSBuild.
Sommario:
Da quanto ho capito, MSBuild è una raccolta di compilatori Microsoft, e potrebbe non essere responsabile della generazione, ma ci aiuterà a chiamare Roslyn per compilare il codice C#. Può anche compilare codice in altri linguaggi e poi chiamare altri compilatori corrispondenti.
Per compilare progetti C#, MSBuild è il decisore e Roslyn l'esecutore.
|