azure-devops - Azure Devops 管道在管道构建中出现 `default literal` 错误

标签 azure-devops continuous-integration azure-pipelines visual-studio-2019

我有一个标准的管道代理,每当拉取请求合并到 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 .

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

  • 不要使用较新的形式。更改 default 的任何现有实例有一个类型,并更改设置,以便 IDE 更喜欢详细形式。这是打开新表单的图片,只需将 Yes 更改为 No:
    Tools->Options setting for 'default' expression
    如果你使用 .editorconfig 文件,你可以配置 csharp_prefer_simple_default_expression环境。
  • 设置 language version for your project足够高以支持新语法。请记住,如果您将其设置为 latest它可能在您的开发箱 (VS2019) 和构建代理之间使用不同的版本(例如,可能仍在 VS2017 上)。
  • 关于azure-devops - Azure Devops 管道在管道构建中出现 `default literal` 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55758863/

    相关文章:

    git - 根据源分支部署到不同的环境

    azure-devops - Dynamics 365 On Premise + VPN = Azure DevOps 中的 CI/CD 流程

    yaml - 在运行时设置 YAML 模板变量在条件或表达式中不可用

    azure-devops - Azure DevOps 每晚构建 - schedules\cron 语法

    Azure DevOps 发布任务故意停止发布

    c# - 构建 Azure Function v3 时无法解析程序集 'Microsoft.AspNetCore.Mvc.Core, Version=3.1.0.0"

    Jenkins 管道模板 - 方法

    WCF自动化部署

    github - 使用 Travis 调用 GitHub API 构建 Tag

    nuget - 运行NuGet pack命令时,出现错误: 'AutoMapper' already has a dependency defined for 'NETStandard.Library'