ScottGu'nun blog gönderisindeki yorumlardan alınan olası çözümler (sayfada "8026" araması yapın):
Çözüm önerisi 1 (David Taylor)
Bu RTM kodu dom öğelerini web.config dosyasına ekleyin:
<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>
Ardından Roslyn ve Microsoft.CodeDom.Providers. *. Dll öğelerini BIN dizininize ekleyin.
Kurulumu yeterince kolay, ancak VS 2015 RTM'de yeni bir "Web Sitesi" oluştururken .NET 4.6'yı seçtiyseniz varsayılan şablonun bunun için ayarlanmaması bana garip geldi.
Çözüm önerisi 2 (Martin)
David Taylor'ın yukarıdaki yorumuna ek olarak, varsayılan v4.5.2 olarak TargetFramework ile bir Web Uygulaması oluşturulduğunda system.codedom ayarları doğru görünüyor. TargetFramework'ü v4.6 olarak değiştirmek, CSharp için derleyici ayarlarını bir soruna neden olacak şekilde değiştiriyor gibi görünüyor.
Çözümlerim aşağıdaki gibiydi:
- Dosya / Yeni / ASP.NET Web Uygulaması
- ASP.NET 4.5.2 Şablonlarından "Web API" şablonunu seçin
- System.codedom öğesinin (ve içeriğinin) web.config dosyasındaki bir kopyasını alın
- Properties / TargetFramework kullanarak Hedef Çerçeveyi 4.6 olarak ayarlayın
- Web.config'deki değiştirilmiş system.codedom öğesini TargetFramework değiştirmeden önce alınan kopya ile değiştirin
- hit F5
Ana Sayfa beklendiği gibi yüklenmelidir.
Bilgi için, TargetFramework v4.6 olarak değiştirildikten hemen sonra system.codedom içeriği. aşağıdaki gibiydi ("Microsoft.CSharp.CSharpCodeProvider" Türü kullanımına dikkat edin):
<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>