Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 55049|Répondre: 0

[Source] La différence entre le compilateur Roslyn MSBuild

[Copié le lien]
Publié sur 21/03/2021 11:55:39 | | | |
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 :

Débogage de programmes .NET avec Notepad à la maison sur un ordinateur pendant dix ans
https://www.itsvse.com/thread-9419-1-1.html

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.





Précédent:ASP.NET DI Core (VI) obtient manuellement la méthode d’injection d’objets
Prochain:.NET/C# Emit génère dynamiquement des assemblages
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com