Старый проект не распознает лямбда-выражение - PullRequest
0 голосов
/ 17 января 2019

У меня есть старый проект, который использовал .net 4.5, который я обновил до .net 4.6.2.Я использую Visual Studio 2017, поэтому он должен поддерживать лямбда-выражения, но когда я пытаюсь запустить свой проект, он всегда выдает эту ошибку:

Недопустимый токен '=>' в классе, структуре или интерфейсеобъявление участника

Как мне заставить мой проект компилироваться с использованием c # 6?Я думал, что достаточно просто обновить целевую среду?

Ответы [ 3 ]

0 голосов
/ 17 января 2019

Попробуйте добавить ссылку на Microsoft.Net.Compilers в указанный проект, используя Nuget (специально для версии 2.10 или выше), чтобы привязки компилятора использовали функции 4.6+.

Недопустимая ошибка класса токена обычно появляется, когда компиляторы .Net неправильно настроены в Project.

Install-Package Microsoft.Net.Compilers -Version 2.10.0

Примечание. Если вы используете VS 2017, он должен это сделать автоматически.

0 голосов
/ 17 января 2019

Изменяя версию языка по умолчанию, я начал получать другую ошибку:

Неверный параметр '7' для / langversion; должно быть ISO-1, ISO-2, по умолчанию или целое число в диапазоне от 1 до 6

Я исследовал это и нашел несколько ответов, которые привели меня к правильному ответу. Единственное, что мне нужно было сделать, это обновить пакет

Microsoft.Net.Compilers

Он использовал версию 1.3 , я обновился до 2.10.0 и все заработало.

0 голосов
/ 17 января 2019

Вам необходимо установить Расширенные настройки сборки Скорее всего

RightClick Project -> Properties -> Build -> Advanced build settings

Установите Language Version на ваш любимый или что-то подходящее

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...