Azure Devops 管道在管道构建时出现“默认文字”错误

Azure Devops Pipeline getting `default literal` error on Pipeline build

我有一个标准的管道代理,每当拉取请求合并到 master 时,它就可以为 CI 工作。在我合并由 visual-studio-2019 开发分支创建的拉取请求之前,它工作正常。现在我得到

error CS8107: Feature 'default literal' is not available in C# 7.0. Please use language version 7.1 or greater.

当我使用 vs2017 推送任何更改时,它工作正常。

我应该怎么做才能避免这个错误?

P.S:我想继续使用vs2019

提前致谢。

当您有如下代码时会发生这种情况:

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

在 C# 7 中,支持的语法是:

MyType foo = default(MyType);

但更简单的形式是 added in 7.1

有两种方法可以解决这个问题:

  1. 不要使用较新的表单。将 default 的任何现有实例更改为具有类型,并更改设置,以便 IDE 更喜欢冗长的形式。这是打开新表单的图片,只需将 Yes 更改为 No: 如果您使用的是 .editorconfig 文件,则可以配置 csharp_prefer_simple_default_expression 设置。
  2. language version for your project 设置得足够高以支持新语法。请记住,如果您将其设置为 latest,它 可能 在您的开发盒 (VS2019) 和构建代理(例如可能仍在 VS2017 上)之间使用不同的版本。

我刚刚通过更新构建管道中的代理池以使用 "Hosted Windows 2019 with VS2019"

解决了这个问题