Posibles soluciones, tomadas de los comentarios en la publicación del blog de ScottGu (busque "8026" en la página):
Sugerencia de solución 1 (David Taylor)
Agregue estos elementos dom de código RTM a web.config:
<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>
Luego agregue las cosas de Roslyn y Microsoft.CodeDom.Providers. *. Dll en su directorio BIN.
Es bastante fácil de configurar, pero me resultó extraño que la plantilla predeterminada no estuviera configurada si seleccionó .NET 4.6 al crear un nuevo "Sitio web" en VS 2015 RTM.
Sugerencia de solución 2 (Martin)
Además del comentario anterior de David Taylor, parece que la configuración de system.codedom es correcta cuando se crea una aplicación web con TargetFramework como v4.5.2 predeterminado. Cambiar el TargetFramework a v4.6 parece modificar la configuración del compilador para CSharp, de una manera que causa un problema.
Mi solución fue la siguiente:
- Archivo / Nuevo / Aplicación web ASP.NET
- Seleccione la plantilla "Web API" de las plantillas ASP.NET 4.5.2
- Tome una copia del elemento system.codedom (y su contenido) en web.config
- Usando Properties / TargetFramework, establezca Target Framework en 4.6
- Reemplace el elemento system.codedom modificado en web.config con la copia tomada antes de cambiar TargetFramework
- Golpear F5
La página de inicio debe cargarse como se esperaba.
Para obtener información, el contenido de system.codedom inmediatamente después de cambiar TargetFramework a v4.6. fue el siguiente (tenga en cuenta el uso del tipo "Microsoft.CSharp.CSharpCodeProvider"):
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701">
<providerOption name="CompilerVersion" value="v4.0"/>
</compiler>
<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>