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:
runtime
Je pense comprendre Cela aidera - par exemple. Je ne peux pas être le seul à avoir un sourcil levé en voyant un .exe
"nécessaire"....
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 leVBCSCompiler.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 ...
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
.
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
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.
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é.
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://visualstudiomagazine.com/articles/2012/03/20/10-questions-10-answers-on-roslyn.aspx
De: https://forums.asp.net/t/2079727.aspx?What++++++lynlyn+folder+