Ошибка Неверная опция "6" для /langversion; должны быть ISO-1, ISO-2, 3, 4, 5 или по умолчанию

Я пытаюсь настроить .NET 4.6, а также воспользоваться последней версией С#, изменив версию языка С# на 6.

Однако во время компиляции я получил эту ошибку:

Ошибка Неверная опция "6" для /langversion; должен быть ISO-1, ISO-2, 3, 4, 5 или по умолчанию

Если я обновляю параметр /langversion:6 в настройке Web.Config до 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.

Проект представляет собой стандартный проект шаблона ASP.NET MVC, созданный Visual Studio 2015.

Ответ 1

Обратитесь к типу "компилятора" в файле Web.Config при изменении версии Framework:

для 4.5 и С# 5 -

тип = "Microsoft.CSharp.CSharpCodeProvider...

для 4.6 и С# 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

может решить эти проблемы.

Ответ 3

Я встретил такое поведение, если проект не был полностью обновлен до VS2015. Если вы откроете решение с 2015 года в VS2013 - вы получите эту ошибку

Ответ 4

1.Перейдите в проект и выберите свойства проекта.

2 Выберите "Создать" и нажмите "Расширенная кнопка".

3.Выберите версию языка по умолчанию.

4.Save.

https://youtu.be/IP8feQeWqkk

Ответ 5

См. ответ на странную ошибку компиляции ASP.NET!.

Превышение уровня языка С# до 5 только маскирует проблему, как только кто-то использует функцию С# 6, ваш сайт/проект сломается, и вы все равно потратите время на его исправление. Попробуйте решение по ссылке.