Azure Devops Pipeline получает ошибку `default literal` при сборке конвейера - PullRequest
1 голос
/ 19 апреля 2019

У меня есть стандартный агент конвейера, который работает для CI всякий раз, когда запрос на включение объединяется с главным. Он работал нормально, пока я не объединил запрос на извлечение, созданный разработанной visual-studio-2019 веткой. Теперь я получаю

ошибка CS8107: функция «литерал по умолчанию» недоступна в C # 7.0. Пожалуйста, используйте языковую версию 7.1 или выше.

Это работает нормально, когда я нажимаю любые изменения с vs2017.

Что я должен сделать, чтобы избежать этой ошибки?

P.S .: Я хочу продолжать использовать vs2019

Заранее спасибо.

1 Ответ

4 голосов
/ 20 апреля 2019

Это происходит, когда у вас есть код, подобный следующему:

MyType foo = default; // assign the default value for this type

В C # 7 поддерживается синтаксис:

MyType foo = default(MyType);

, но в 7.1 .

была добавлена ​​более простая форма . Есть два способа исправить это:

  1. Не используйте более новую форму.Измените любые существующие экземпляры default, чтобы они имели тип, и измените параметры так, чтобы среда IDE предпочла подробную форму.Вот изображение с включенной новой формой, просто измените Да на Нет: imageOptions setting for 'default' expression"> Если вы используете файлы .editorconfig, вы можете настроить параметр csharp_prefer_simple_default_expression.
  2. Установите языковую версию для вашего проекта на достаточно высокую для поддержки нового синтаксиса.Имейте в виду, что если вы установите его на latest, то может использовать другую версию между вашим блоком разработки (VS2019) и вашим агентом сборки (например, возможно, все еще на VS2017).
...