VS2015新Web项⽬(C#6)出现CS1617错误的解决
VS2015新增了对C#6的⽀持.
在新的Web项⽬模板中通过引⼊nuget包Microsoft.CodeDom.Providers.DotNetCompilerPlatform:1.0.0并在fig中添加
&dedom>
<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, PublicKeyTo <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, Pu </compilers>
</dedom>
来提供Razor的C#6.0⽀持(旧项⽬也可以通过⾃⼰添加来获得⽀持)
但是在当你修改了⽬标框架(例如从4.5升级到4.6)之后, ⽹站将会⽆法开启并提⽰
“/”应⽤程序中的服务器错误。
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误消息: CS1617: 选项“6”对 /langversion ⽆效;必须是 ISO-1、ISO-2、3、4、5 或 Default
源错误:
[没有相关的源⾏]
源⽂件:    ⾏: 0
显⽰详细的编译器输出:
C:\Program Files (x86)\IIS Express> "C:\Windows\Microsoft.NET\Framework\v4.0." /t:library /utf8output /R:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\vs\...
Microsoft (R) Visual C# Compiler version 4.6.0081.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.
This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer versions of the C# programming language, see http:/ error CS1617: 选项“6”对 /langversion ⽆效;必须是 ISO-1、ISO-2、3、4、5 或 Default
查看fig中的配置, 发现已被⾃动修改为(似乎⼀般是改cs不改vb, 往低了改会连vb⼀起改)
&dedom>
编译器错误<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 <providerOption name="CompilerVersion" value="v4.0"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4" compilerOptions <providerOption name="CompilerVersion" value="v4.0"/>
</compiler>
</compilers>
</dedom>
⽽这是⽆法正常⼯作的, 需要⼿动修改为最初的结果
2015/07/31: 微软已确认