Solutions possibles, tirées des commentaires sur la publication du blog de ScottGu (recherchez "8026" sur la page):
Suggestion de solution 1 (David Taylor)
Ajoutez ces éléments de code RTM dom à 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>
Ajoutez ensuite les éléments Roslyn et Microsoft.CodeDom.Providers. *. Dll dans votre répertoire BIN.
Il est assez facile à installer, mais il m'est juste étrange que le modèle par défaut ne soit pas configuré pour cela si vous avez sélectionné .NET 4.6 lors de la création d'un nouveau «site Web» dans VS 2015 RTM.
Suggestion de solution 2 (Martin)
Suite au commentaire de David Taylor ci-dessus, il semble que les paramètres system.codedom sont corrects lorsqu'une application Web est créée avec TargetFramework par défaut v4.5.2. La modification de TargetFramework en v4.6 semble modifier les paramètres du compilateur pour CSharp, d'une manière qui provoque un problème.
Mes solutions de contournement étaient les suivantes:
- Fichier / Nouveau / Application Web ASP.NET
- Sélectionnez le modèle "API Web" dans les modèles ASP.NET 4.5.2
- Prenez une copie de l'élément system.codedom (et de son contenu) dans web.config
- À l'aide de Properties / TargetFramework, définissez Target Framework sur 4.6
- Remplacez l'élément system.codedom modifié dans web.config par la copie prise avant de modifier TargetFramework
- Frappé F5
La page d'accueil doit se charger comme prévu.
Pour plus d'informations, le contenu de system.codedom immédiatement après avoir changé TargetFramework en v4.6. était comme suit (notez l'utilisation du type "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>