/langversion 的错误选项“6”无效;必须是 ISO-1、ISO-2、3、4、5 或默认值
Error Invalid option '6' for /langversion; must be ISO-1, ISO-2, 3, 4, 5 or Default
我正在尝试以 .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
文件中的编译器 "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"
查看 ASP.NET strange compilation error! 的答案。
将您的 C# 语言降级到 5 只会掩盖问题,一旦有人使用 C# 6 功能,您的 website/project 就会崩溃,您仍然会花时间再次修复它。尝试 link.
中的解决方案
如果项目没有完全升级到 VS2015,我会遇到这样的行为。如果您在 VS2013 中打开 2015 年的解决方案 - 您将收到此错误
1.Go 到项目和 select 您的项目属性。
2 Select 构建并单击“高级”按钮。
3.Select 语言版本默认。
4.Save .
更新以下 NuGet 包(以安装的为准)以解决问题:
- Microsoft.CodeDom.Providers.DotNetCompilerPlatform
- Microsoft.Net.Compilers
我在 visual studio 2019 年第一次加载应用程序时遇到了类似的问题。将 "Microsoft.CodeDom.Providers.DotNetCompilerPlatform" nuget 更新到更高版本对我有用。
打开 NuGet 包管理器控制台并运行执行以下命令
更新包Microsoft.CodeDom.Providers.DotNetCompilerPlatform-r
我正在尝试以 .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
文件中的编译器 "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"
查看 ASP.NET strange compilation error! 的答案。
将您的 C# 语言降级到 5 只会掩盖问题,一旦有人使用 C# 6 功能,您的 website/project 就会崩溃,您仍然会花时间再次修复它。尝试 link.
中的解决方案如果项目没有完全升级到 VS2015,我会遇到这样的行为。如果您在 VS2013 中打开 2015 年的解决方案 - 您将收到此错误
1.Go 到项目和 select 您的项目属性。
2 Select 构建并单击“高级”按钮。
3.Select 语言版本默认。
4.Save .
更新以下 NuGet 包(以安装的为准)以解决问题:
- Microsoft.CodeDom.Providers.DotNetCompilerPlatform
- Microsoft.Net.Compilers
我在 visual studio 2019 年第一次加载应用程序时遇到了类似的问题。将 "Microsoft.CodeDom.Providers.DotNetCompilerPlatform" nuget 更新到更高版本对我有用。
打开 NuGet 包管理器控制台并运行执行以下命令
更新包Microsoft.CodeDom.Providers.DotNetCompilerPlatform-r