2015-08-07 3 views
66

Я пытаюсь настроить таргетинг на .NET 4.6, а также воспользоваться последней версией C#, изменив версию языка C# на 6.Ошибка Неверная опция «6» для/langversion; должен быть ISO-1, ISO-2, 3, 4, 5 или по умолчанию

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

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

Если я обновить /langversion:6 в настройки 5 он работает Web.Config,

<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

В моем случае мне только пришлось удалить '/ langversion: 6' ... –

+0

@modosansreves Что вернется к языковой версии по умолчанию .., которая является C# 5, я верю ... проверьте, можете ли вы использовать любой из C# 6 языков. –

+0

Действительно. Это лишает возможности использования C# 6. Благодарю. –

ответ

73

Pay attantion компилятора "тип" в файле Web.Config, при изменении Framework версии:

на 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 here...

+17

Это работает! .. Хотя я считаю это ошибкой в ​​Visual Studio 2015, чтобы не обновлять это автоматически, когда я перенаправляю свое приложение на .NET 4.6 и C# 6. –

+0

Думаю, ты в этом прав. Я ужалил его и наткнулся на ваш вопрос. К счастью, следующая ссылка, которую я нашел, была ответом. – DrewB

+2

Добавьте это к многочисленным ошибкам, с которыми я сталкиваюсь с VS2015. –

0

Посмотреть ответ на ASP.NET strange compilation error!.

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

3

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

+0

Я тоже думаю, что эта ошибка в основном означает, что вам нужно установить VS2015! Кто-то еще в проекте использует новые функции языка, которые 2013 год не может справиться с –

3

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

2 Выберите «Создать и нажмите кнопку« Дополнительно ».

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

4.Save.

https://youtu.be/IP8feQeWqkk

+0

Если бы эта ошибка в VS2013. Это решение для меня не сработало, к сожалению. – Jviaches

+1

Это работало для меня. Все другие предлагаемые решения вращались вокруг изменения файла web.config или, альтернативно, загрузки пакетов/обновлений NuGet. Компилятор продолжал бросать ошибки о недопустимой версии, что меня смутило, так как у меня не было этой настройки в файле конфигурации. Оказывается, расширенные свойства сборки не были автоматически обновлены обновлением пакета NuGet. –

12

обновление по NuGet

Microsoft.CodeDom.Providers.DotNetCompilerPlatform

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

+0

Это скорее комментарий, чем ответ –

+0

Это настоящее решение! Удалите этот пакет nuget и проблема решена для меня – Geomorillo

+0

Я переключился на C# 6.0, но пакет все еще находился в более старой версии. Обновление от 1.0 до 1.0.4 работало для меня. – Mixxiphoid