c# – 错误无效选项’6’表示/ langversion;必须是ISO-1,ISO-2,3,4,5或默认值

问题:

我试图以.NET 4.6为目标,并通过将C#语言版本更改为6来利用最新的C#版本。

但是在编译期间我遇到了这个错误:

错误无效选项’6’表示/ langversion; 必须是ISO-1,ISO-2,3,4,5或默认值

如果我将Web.Config设置中的/langversion:6更新为5,它可以工作,

  <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">

但是如何在不使用低语言版本的情况下解决这个问题呢?

我正在使用Visual Studio 2015社区版,我还手动安装了.NET Framework 4.6,以防Visual Studio 2015默认安装它。

该项目是Visual Studio 2015创建的标准ASP.NET MVC模板项目。

I am trying to target .NET 4.6 and also take advantage of the latest C# version by changing the C# language version to 6.However during compilation I got this error:Error Invalid option ‘6’ for /langversion;must be ISO-1, ISO-2, 3, 4, 5 or DefaultIf I update the /langversion:6 in Web.Config setting to 5 it works,But how do I resolve this without resorting to lower language version?I am using Visual Studio 2015 Community Edition, and I have also installed .NET Framework 4.6 manually just in case it was not installed by default by Visual Studio 2015.The project is a standard ASP.NET MVC template project created by Visual Studio 2015.

解决方案:

方案1:

更改Framework版本时,请注意Web.Config文件中的编译器“type”:

4.5和C#5 –

type="Microsoft.CSharp.CSharpCodeProvider...

4.6和C#6 –

type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

此论坛帖子中的更多信息

方案2:

更新以下NuGet包(以安装者为准)解决问题:

  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform
  • Microsoft.Net.Compilers

方案3:

1.转到项目并选择您的项目属性。

2选择“构建”并单击“高级”按钮

3.选择语言版本默认。

4.Save。

https://youtu.be/IP8feQeWqkk

方案4:

如果项目没有完全升级到VS2015,我遇到了这种行为。 如果您在2015年在VS2013中打开解决方案 – 您将收到此错误

方案5:

查看ASP.NET奇怪编译错误的答案!

将您的C#语言降级为5只会掩盖问题,只要有人使用C#6功能,您的网站/项目就会中断,您仍然会花时间再次修复它。 尝试链接中的解决方案。

参考连接:

https://stackoverflow.com/questions/31868803/31868803