Deshabilitar el compilador Roslyn temporalmente


El nuevo compilador de .Net todavía está en CTP y no tiene licencia para desplegar aplicaciones en producción. Si instalas Roslyn en la máquina que utilizas para desarrollar cada día, vas a tener que desinstalarlo antes de compilar código para producción, pues sustituye completamente al compilador de .Net, incluso el de línea de comando.

La instalación y desinstalación de Roslyn es bastante rápida, pero tenemos otra forma de deshabilitar el compilador que nos ahorrará algo de tiempo. Será tan fácil como definir el valor true en la variable DisableRoslyn. Podemos indicar este valor de dos formas: como parámetro de msbuild o como variable de entorno.

Desde Visual Studio podemos definir una propiedad a nivel de proyecto que pasará a msbuild y deshabilitará Roslyn, así:

<PropertyGroup>
  <DisableRoslyn>true</DisableRoslyn>
</PropertyGroup>

Pero tendremos que hacerlo a nivel de cada proyecto y si queremos volver a habilitar Roslyn tendremos que volver a editar todos los proyectos. En realidad es mucho más fácil establecer una variable de entorno llamada DisableRoslyn y asignar un true o un false según nos convenga en cada momento:

Disable Roslyn

Yo me he hecho un .bat y lo he añadido a mi barra de tareas como un botón de activar/desactivar:

@echo off
IF "%DisableRoslyn%"=="true" (
setx DisableRoslyn false
echo Roslyn compilation enabled
) ELSE (
setx DisableRoslyn true
echo Roslyn compilation disabled
)
pause 0

Ahora ya no tenéis excusa para probar Roslyn.

Aunque yo me enteré de esto directamente, ahora es más fácil saber estas cosas: basta mirar el código fuente de http://roslyn.codeplex.com, en este caso veréis la explicación en el archivo CompilerPachage.cs:
CompilerPackage.cs
 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s