web-dev-qa-db-fra.com

Pourquoi / pourquoi Roslyn est-elle "nécessaire" dans le dossier / bin de Asp.Net?

Il y a un tas de questions connexes à ce sujet, bien que la plupart des réponses define Roslyn et/ou fournissent une "solution" à un problème (exe, avec les hébergeurs, etc.)

Ce que je n'arrive pas à retrouver, c’est le "pourquoi" et le "pourquoi" (peut-être seulement dans le contexte de l’API ASP.Net MVC/Web) dans /bin/roslyn.

J'ai rencontré des problèmes similaires (hébergement - .exe restrictions, prise en charge de 4.6, etc.) et mon "correctif" était de "déployer simplement sur Azure" (bien sûr, tout fonctionne sans accroc). Mais vraiment, cela ne répond pas:

  • pourquoi sont-ils nécessaires?
  • cela signifie-t-il qu'ils sont utilisés pour la compilation runtime (mon cerveau pointe vers cela, mais c'est une supposition complète/peut-être mon mauvais grok), comme this SO post montre - sauf correction, c'est "ça" (plus bas).
  • il semble que "supprimer le paquet" soit un "correctif" (basé sur des réponses antérieures)mais si oui, il (re) pose la question

Je pense comprendre Cela aidera - par exemple. Je ne peux pas être le seul à avoir un sourcil levé en voyant un .exe "nécessaire"....


Mise à jour

Cela montre que les "joyaux cachés" existent :) J'ai lisez ceci encore et encore ... après tout, cela fait déjà quelque temps maintenant - mais pas le fil de commentaires - Le lien référencé d'origine, vers 2014, a été repensé par Microsoft et les commentaires ne sont plus affichés ... Heureusement, les parties correspondantes sont ci-dessous.

Grosse erreur - il me fixait depuis tout ce temps (ou du moins depuis cet échange):

Dmitry Dzygin 2 juin 2015 00:53

J'ai essayé la dernière version du paquet NuGet, mais il semble y avoir une différence dans la façon dont le compilateur est chargé/exécuté.

Dans la version 0.2.0.0, le compilateur Roslyn serait chargé en mémoire, ce qui améliorerait considérablement les performances des sites Web non précompilés avec plusieurs fichiers * .as * x/*. Cshtml. La nouvelle version, cependant, comporte un nouveau /bin/roslyn/csc.exe fichier, qui est exécuté une fois par fichier, supprimant complètement la fonction d'optimisation mentionnée ci-dessus .....

Or:

XMao 2 juin 2015 13h22

@ Dmitry Le travail du csc.exe dans /bin/Roslyn est d'invoquer le VBCSCompiler.exe, qui se trouve dans le même dossier. VBCSCompiler.exe est le processus qui effectue le travail de compilation proprement dit. Si VBCSCompiler exécute déjà csc.exe, il sera réutilisé et nous obtiendrons donc l'amélioration des performances mentionnée.

Hth ...


Mise à jour: 10/2017

Cela semble être pertinent après tout ce temps, donc une nouvelle mise à jour.

Le réponse ci-dessous de @Donny V est un option. En compilant entièrement votre application, y compris tous les Views (.cshtml/.vbhtml), vous n’auriez pas besoin de cela exe dans votre application.

Cela est vrai même si Visual Studio (à ce jour, VS 2017, ce qui porte à confusion) encore créer le /bin/roslyn et son contenu dans le processus Publish, même si "compilation complète" est défini .

Vous pouvez tester ceci en excluant le /bin/roslyn dossier et son contenu lors du transfert de votre application chez votre fournisseur d’hébergement.

Mise en garde :

Comme mentionné précédemment, la compilation complète de votre application signifie que vous devrez la recompiler, même pour les changements de niveau View.

67
EdSF

Ceci est tiré du forum MSDN.
https://social.msdn.Microsoft.com/Forums/vstudio/en-US/442b100a-2b88-4ac4-b655-0c1345791f15/roslyn-cscexe-web-api-2-on -hosting-server? forum = msbuild

J'ai remarqué un inconvénient mineur à la désinstallation de ce paquet:

https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform

Certaines des nouvelles fonctionnalités du langage C # 6.0, si elles sont utilisées dans Views (projet MVC), ne seront pas compilées. Beaucoup de mes opinions utilisent le?. Opérateur de contrôle null pour accéder aux propriétés du modèle. Toutes ces vues renvoient maintenant des erreurs sur mon application MVC 5 hébergée par Godaddy.

Cette erreur se produit car les vues (par défaut) sont compilées au moment de l'exécution à l'aide du pipeline .NET (non précompilé).

Pour résoudre ce problème, décochez simplement l'option "Autoriser la mise à jour du site précompilé" dans les paramètres de votre profil de publication. Cela devrait pré-compiler vos vues et permettre à votre C # 6.0 (dernière version de Roslyn Compiler) de fonctionner comme un champion.

Je voulais juste que ceux qui regardaient cette question sachent quelle est la ramification de sa désinstallation et pourquoi ils existent en premier lieu

32
Donny V.

Ce problème se posait tout le temps dans Visual Studio 2017 Community Edition où le projet ne pouvait pas être reconstruit car les anciens fichiers de bin/roslyn ne pouvaient pas être supprimés. Sur la base du commentaire Gold de l'OP, je garde maintenant le Gestionnaire de tâches ouvert (Ctrl + Maj + Échap) et tue le processus VBCS.exe. Les fichiers en cause dans bin/roslyn peuvent maintenant être supprimés.

8
Manish

Une autre caractéristique de ce logiciel est qu’il n’est pas nécessaire que les serveurs de compilation disposent de dépendances du compilateur. Vous envoyez le compilateur que vous souhaitez utiliser AVEC le code au serveur de génération et celui-ci utilise exactement ce que vous lui avez indiqué.

1
Paul Swetz

Cette version de Visual Studio contient une nouvelle version du code des compilateurs C # et VB.net nommée "Roslyn".

Roslyn est une réécriture complète des compilateurs C # et VB.net avec chacun écrit dans leur langage respectif, par exemple le compilateur C # est écrit en C # plutôt qu'en C++. Roslyn est open source (Roslyn sur GitHub), vous pouvez donc même théoriquement créer votre propre version de C # ou VB.net!

Ce qui allait devenir Roslyn a été mentionné pour la première fois en 2008 par Anders Hejlsberg lors de la conférence PDC), mais ce n’est qu’en 2011 que le premier aperçu a été publié.

Vous pouvez vous référer aux liens suivants pour obtenir des informations plus détaillées sur votre problème.

https://gooroo.io/GoorooTHINK/Article/16253/Visual-Studio-2015-and-Roslyn-Compiler/17944#.VmkfwjaheM8

https://visualstudiomagazine.com/articles/2012/03/20/10-questions-10-answers-on-roslyn.aspx

De: https://forums.asp.net/t/2079727.aspx?What++++++lynlyn+folder+

0
Prime