.net - ¿Qué hace exactamente<system.codedom>/<compilers> en web.config en MVC 5?
asp.net-mvc asp.net-mvc-5 (1)
Estoy a punto de migrar un montón de proyectos de .NET 4.0 + MVC 3 a .NET 4.5.2 + MVC5.
Para hacerlo más fácil, he creado un nuevo proyecto MVC en blanco para comparar las referencias de DLL y algunas otras cosas como web.config.
En este último, Visual Studio genera las siguientes entradas:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=/"Web/" /optionInfer+"/>
</compilers>
</system.codedom>
Pero no sé lo que hace exactamente. Los proyectos de MVC 3 no contienen estas partes. Tengo entendido que tiene algo que ver con Roslyn.
Esta configuración se usa para la compilación dinámica . Se pueden eliminar de forma segura del web.config si realiza una compilación previa y solo coloca los ensamblados compilados en el servidor web.
Consulte también El impacto de múltiples definiciones de compilador en system.codedom en web.config