Solusi yang memungkinkan, diambil dari komentar di posting blog ScottGu (cari "8026" di halaman):
Saran solusi 1 (David Taylor)
Tambahkan elemen dom kode RTM ini ke 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>
Kemudian tambahkan hal-hal Roslyn dan Microsoft.CodeDom.Providers. *. Dll ke dalam direktori BIN Anda.
Ini cukup mudah untuk mengatur, tetapi aneh bagi saya bahwa template default tidak diatur untuk itu jika Anda memilih .NET 4.6 saat membuat "Situs Web" baru di VS 2015 RTM.
Saran solusi 2 (Martin)
Lebih jauh dari komentar David Taylor di atas, sepertinya pengaturan system.codedom sudah benar ketika Aplikasi Web dibuat dengan TargetFramework sebagai v4.5.2 default. Mengubah TargetFramework ke v4.6 tampaknya mengubah pengaturan kompilator untuk CSharp, dengan cara yang menyebabkan masalah.
Solusi saya adalah sebagai berikut:
- File / Baru / Aplikasi Web ASP.NET
- Pilih template "Web API" dari Template ASP.NET 4.5.2
- Ambil salinan elemen system.codedom (dan isinya) di web.config
- Menggunakan Properties / TargetFramework, atur Target Framework ke 4.6
- Ganti elemen system.codedom yang dimodifikasi di web.config dengan salinan yang diambil sebelum mengubah TargetFramework
- Memukul F5
Halaman Beranda harus dimuat seperti yang diharapkan.
Untuk info, isi system.codedom segera setelah mengubah TargetFramework ke v4.6. adalah sebagai berikut (perhatikan penggunaan 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>