c# -/langversion 的错误选项 '6' 无效;必须是 ISO-1、ISO-2、3、4、5 或默认值

标签 c# .net asp.net-mvc-5.2 .net-4.6

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

但是在编译过程中出现了这个错误:

Error Invalid option '6' for /langversion; must be ISO-1, ISO-2, 3, 4, 5 or Default

如果我将 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 Community Edition,我还手动安装了 .NET Framework 4.6,以防 Visual Studio 2015 默认没有安装它。

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

最佳答案

在更改框架版本时,请注意 Web.Config 文件中的编译器“类型”:

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

More info in this forum post

关于c# -/langversion 的错误选项 '6' 无效;必须是 ISO-1、ISO-2、3、4、5 或默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31868803/

相关文章:

c# - 使用 Identity 2.0 在 MVC 应用程序和 WCF 服务之间传递身份验证

c# - 通用列表 c# 中的重复值

c# - 通过 javascript 启用/禁用 asp.net 复选框

c# - asp.net mvc或javascript将另一个页面的结果返回给方法

c# - RadGrid (Gridview) 中的 FindControl 编辑和插入 View

asp.net-core - 我们可以将 Mvc 应用程序开发的 .Net 框架转换为 Mvc Asp.Net Core 2.0 而无需更改代码或更改最少的代码

c# - 如何将属性添加到标有 XmlArrayAttribute 的集合中?

c++ - 将 C++ 库移植到 .NET

c# - 从 mysql 检索保存的图像时出现参数无效错误 c#

c# - 映射对象时如何将自定义逻辑应用于AutoMapper?