remove net how asp asp.net-web-api asp.net-mvc-5 roslyn

asp.net web api - how - Qué/por qué Roslyn es "necesaria" en la carpeta/bin de Asp.Net



how to remove roslyn (4)

Hay un montón de preguntas relacionadas con esto, aunque la mayoría de las respuestas definen a Roslyn y / o proporcionan una "solución" a algún problema ( exe , con proveedores de hosting, etc.)

Lo que parece que no puedo rastrear es el "por qué" y el "para qué" (quizás solo en el contexto de ASP.Net MVC / Web API) en /bin/roslyn .

Me encontré con problemas similares (hosting - restricciones .exe , soporte para 4.6 , etc.) y mi "solución" fue "simplemente implementar en Azure" (por supuesto, todo funciona sin problemas). Pero realmente, esto no responde:

  • ¿Por qué son necesarios?
  • ¿Significa esto que se usan para la compilación en runtime de runtime (mi cerebro apunta a esto, pero eso es una suposición completa / mi quizás equivocado grok), como muestra esta publicación SO , a menos que se corrija, esto es "eso" (más abajo).
  • parece que "eliminar el paquete" es una "solución" (basada en algunas respuestas anteriores) , pero si es así, (re) plantea la pregunta

Creo que entender esto ayudará, por ejemplo, no puedo ser el único que levantará una ceja al ver un .exe "necesario" ...

Actualizar

Va a mostrar que existen "gemas ocultas" :) He leído esto una y otra vez ... después de todo, ha estado allí durante algún tiempo, pero no el hilo de comentarios , el enlace referenciado original, alrededor de 2014, ha sido rediseñado por Microsoft y los comentarios ya no se muestran ... afortunadamente, las partes relevantes están a continuación.

GRAN error: me estaba mirando todo este tiempo (o al menos desde este intercambio):

Dmitry Dzygin 2 de junio de 2015 12:53 a.m.

He probado la última versión del paquete NuGet, pero parece haber una diferencia en la forma en que se carga / ejecuta el compilador.

En la v0.2.0.0, el compilador de Roslyn se cargaría en la memoria, mejorando en gran medida el rendimiento para sitios web no precompilados con múltiples archivos * .as * x / *. Cshtml. Sin embargo, la nueva versión presenta un nuevo archivo /bin/roslyn/csc.exe , que se ejecuta una vez por archivo, eliminando por completo la función de optimización mencionada anteriormente .....

Oro:

XMao 2 Jun 2015 1:22 PM

@Dmitry El trabajo de csc.exe en /bin/Roslyn es invocar el VBCSCompiler.exe , que se encuentra en la misma carpeta. VBCSCompiler.exe es el proceso que realiza el trabajo de compilación real. Si el VBCSCompiler ya se está ejecutando, csc.exe lo reutilizará y, por lo tanto, aún obtendremos la mejora de rendimiento mencionada.

Hth ...

Actualización: 10/2017

Parece que esto es relevante después de todo este tiempo, así que una actualización adicional.

La respuesta a continuación por @Donny V es una opción . Al compilar completamente su aplicación, incluidas todas las Views ( .cshtml / .vbhtml ), no necesitaría ese exe en su aplicación.

Esto es cierto incluso si Visual Studio (hasta el día de hoy, VS 2017, de manera confusa) seguirá creando /bin/roslyn y sus contenidos en el proceso de Publish , incluso si se establece "compilación completa" .

Puede probar esto excluyendo la carpeta /bin/roslyn y sus contenidos al /bin/roslyn su aplicación a su proveedor de alojamiento.

Advertencia :

Como se mencionó, compilar completamente su aplicación significa que tendrá que volver a compilarla, incluso para los cambios de nivel de View .


Esta versión de Visual Studio contiene una nueva versión del código de compiladores de C # y VB.net llamada "Roslyn".

Roslyn es una reescritura completa de los compiladores de C # y VB.net con cada uno escrito en su lenguaje respectivo, por ejemplo, el compilador de C # está escrito en C # en lugar de C ++. ¡Roslyn es de código abierto (Roslyn en GitHub), por lo que teóricamente incluso podrías crear tu propia versión de C # o VB.net!

Lo que se convertiría en Roslyn, fue mencionado por primera vez en 2008 por Anders Hejlsberg en la conferencia PDC, sin embargo, no fue hasta 2011 que se lanzó la primera vista previa.

Puede consultar los siguientes enlaces para obtener información más detallada sobre su problema.

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+is+the+roslyn+folder+


Esto está tomado del foro de 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

He notado un pequeño inconveniente para desinstalar este paquete:

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

Algunas de las nuevas características del lenguaje C # 6.0 si se usan en Vistas (proyecto MVC) no se compilarán. Muchas de mis vistas usan el?. operador de comprobación nulo para acceder a las propiedades del modelo. Todas estas vistas ahora devuelven errores en mi aplicación MVC 5 alojada en Godaddy.

Este error se produce porque las Vistas (por defecto) se compilan en tiempo de ejecución utilizando la canalización .NET (no precompilada).

Para resolver este problema, simplemente desmarque la opción "Permitir que el sitio precompilado sea actualizable" en la configuración de su perfil de publicación. Esto debería precompilar sus vistas y permitir que su C # 6.0 (última versión del compilador de Roslyn) se ejecute como un campeón.

Solo quería que cualquiera que mirara esta pregunta conociera la ramificación de desinstalarla y por qué está ahí en primer lugar


Me encontré con este problema todo el tiempo en Visual Studio 2017 Community Edition, donde el proyecto no se pudo reconstruir porque los archivos más antiguos en bin / roslyn no se pudieron eliminar. Basado en el comentario Gold del OP, ahora mantengo abierto el Administrador de tareas (Ctrl + Shift + Esc) y elimino el proceso VBCS.exe. Los archivos ofensivos en bin / roslyn ahora se pueden eliminar.


Otra característica es que no requiere que los servidores de compilación tengan dependencias del compilador. Envías el compilador que quieres usar CON el código al servidor de compilación y solo usa exactamente lo que le dijiste.