Rosdi Kasim Rosdi Kasim - 28 days ago 19
C# Question

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

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 Default


If I update the
/langversion:6
in Web.Config setting to 5 it works,

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


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.

Answer

Pay attantion to compiler "type" in the Web.Config file, when changing Framework version:

for 4.5 and C#5 -

type="Microsoft.CSharp.CSharpCodeProvider...

for 4.6 and C#6 -

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

More info here...