MSBuild: Le Microsoft Build Engine est une plateforme pour la création d’applications. Ce moteur, également connu sous le nom de MSBuild, fournit un schéma XML pour les fichiers de projet qui contrôle la manière dont la plateforme de compilation gère et construit les logiciels. Visual Studio utilise MSBuild, mais MSBuild ne dépend pas de Visual Studio. En appelant msbuild.exe dans un fichier de projet ou de solution, vous pouvez planifier et construire des produits dans un environnement sans Visual Studio installé.
Introduire:La connexion hyperlientérée est visible.
Barabala a beaucoup dit, comme on peut le voir sur le nom, qu’il est le compilateur de Microsoft, c’est-à-dire qu’il programme des projets en programmes exécutables, etc.
Utilisé précédemment, modifiez le code avec un bloc-notes de txt, recompilez avec msbuild, comme suit :
Roslynest un compilateur .NET open source de Microsoft Corporation. Le compilateur prend en charge la compilation de code C# et Visual Basic et fournit des API riches d’analyse de code. Nous essayons d’en créer un nouveau.NET framework 4.6le projet, utilisant VS 2019, générera normalement le paramètre MSBuild Project Generate Output Detail, comme montré dans l’image ci-dessous :
Faites un clic droit sur l’objet pour essayer de le régénérer, comme montré ci-dessous :
1>------ Toutes les reconstructions ont été lancées : Projet : ConsoleApp1, Configuration : Débogage de tout CPU ------ 1> L’heure de départ est le 2021/03/21 à 11:38:08. 1>GenerateBinding Redirections : 1> Il n’y a pas de redirections de liaison suggérées dans ResolveAssemblyReferences. 1>GenerateTargetFrameworkMonikerAttribute : 1> saute la cible « GenerateTargetFrameworkMonikerAttribute » car tous les fichiers de sortie sont à jour par rapport aux fichiers d’entrée. 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 / déterministe+ /langversion :7.3 Program.cs Propriétés\AssemblyInfo.cs « obj\Debug\. NETFramework, Version=v4.6.AssemblyAttributes.cs » 1> Utiliser la compilation partagée pour les compilateurs depuis le répertoire de la colonne arrière : C :\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn 1>_CopyAppConfigFile : 1> Copier des fichiers de « C :\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config » vers « C :\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.exe.config"。 1>CopyFilesToOutputDirectory : 1> Copier des fichiers de « C :\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe » vers « 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> Copier des fichiers de « C :\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb » vers « C :\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.pdb"。 1> 1> a été généré avec succès. 1> 0 avertissements 1> 0 erreurs 1> 1> Temps éparpillé 00:00:00.66 ========== Régénérer tous : 1 réussit, 0 échoue et 0 ========== sauté Téléchargé à partir d’autres articles sur Internet, à titre de référence seulement :
Le MSBuild intégré du .NET Framework 4.0 ne reconnaît pas les fonctionnalités de syntaxe C# 6.0.
« MSBuild » => msbuild.exe, « Roslyn » => csc.exe
MSbuild est le système de compilation de Visual Studio. Il appelle le compilateur C# pour compiler le projet C#. Roslyn est un compilateur C# (et un compilateur VB). Par conséquent, msbuild utilise Roslyn.
Cependant, Roslyn contient bien plus qu’un simple compilateur. Il inclut également un plugin VS qui vous offre des fonctionnalités IDE (listes de complétion, couleurs, corrections de code, etc.).
De plus, Roslyn est une API pour analyser le code source, que vous pouvez utiliser dans vos propres applications. Pour ce dernier cas, il existe une API appelée MSBuildWorkspace qui peut être utilisée pour ouvrir un projet ou une solution à analyse. Cet espace de travail utilise MSBuild pour découvrir toutes les parties d’un projet et d’une solution. Par conséquent, cette partie de Roslin utilise MSBuild.
Résumé:
D’après ce que je comprends, MSBuild est un ensemble de compilateurs Microsoft, et il n’est peut-être pas responsable de la génération, mais il nous aidera à appeler Roslyn pour compiler le code C#. Il peut aussi compiler du code dans d’autres langages puis appeler d’autres compilateurs correspondants.
Pour compiler des projets C#, MSBuild est le décideur et Roslyn est l’exécutrice.
|