【问题标题】:Azure Devops Pipeline getting `default literal` error on Pipeline buildAzure Devops Pipeline 在管道构建中出现“默认文字”错误
【发布时间】:2019-04-19 08:29:09
【问题描述】:
每当拉取请求合并到主服务器时,我都有一个标准管道代理,它适用于 CI。在我合并由 visual-studio-2019 开发的分支创建的拉取请求之前,它工作正常。现在我得到了
错误 CS8107:功能“默认文字”在 C# 7.0 中不可用。请使用 7.1 或更高版本的语言。
当我使用 vs2017 推送任何更改时,它工作正常。
我应该怎么做才能避免这个错误?
P.S:我想继续使用 vs2019
提前致谢。
【问题讨论】:
标签:
azure-devops
continuous-integration
azure-pipelines
visual-studio-2019
【解决方案1】:
当您有如下代码时会发生这种情况:
MyType foo = default; // assign the default value for this type
在 C# 7 中,支持的语法是:
MyType foo = default(MyType);
但更简单的形式是added in 7.1。
有两种方法可以解决这个问题:
- 不要使用较新的表格。将
default 的任何现有实例更改为具有类型,并更改设置以使IDE 更喜欢详细形式。这是打开新表单的图片,只需将“是”更改为“否”:
如果您使用 .editorconfig 文件,则可以配置 csharp_prefer_simple_default_expression 设置。
- 将language version for your project 设置为足够高以支持新语法。请记住,如果您将其设置为
latest,它可能在您的开发盒 (VS2019) 和构建代理之间使用不同的版本(例如,可能仍在 VS2017 上)。
【解决方案2】:
我刚刚通过在构建管道中更新我的代理池以使用“Hosted Windows 2019 with VS2019”解决了这个问题