【发布时间】:2021-03-08 20:45:03
【问题描述】:
我有一个使用 Azure DevOps Pipelines 构建和部署的 ASP.NET Core 3.x 项目。在将项目升级为使用 C# 9.0(但不是 ASP.NET Core 5.0)后,我的dotnet build (DotNetCoreCLI@2) 任务发出警告:
未知的 C# 语言版本 9.0。
错误
警告后,任务立即失败并出现以下错误:
##[错误]C:\Program Files\dotnet\sdk\3.1.404\Sdks\Microsoft.NET.Sdk.Razor\build\netstandard2.0\Microsoft.NET.Sdk.Razor.CodeGeneration.targets( 150,5):错误:rzc 生成退出,代码为 2。
任务
我的构建任务没有什么特别之处,只是为了完整性:
- task: DotNetCoreCLI@2
displayName: 'dotnet build'
inputs:
projects: '*.sln'
arguments: '/p:configuration=$(BuildConfiguration) --no-restore'
条件
值得注意的是:
- 在我的本地计算机上使用
dotnet build可以正常构建项目。 - 如果我删除 ASP.NET Core 3.x 项目,只留下我的 .NET Core 3.x 类库,一切正常。
- 如果我将
DotNetCoreCLI@2任务替换为VSBuild@1任务,一切都会正常运行。
鉴于此,仅当项目满足以下条件所有时才会出现此问题:
- 该项目使用
Microsoft.NET.Sdk.Web或Microsoft.NET.Sdk.RazorSDK。 - 该项目使用
TargetFramework或netcoreapp3.0或netcoreapp3.1。 - 该项目使用
LangVersion或9.0。 - 该项目是使用 Azure DevOps
DotNetCoreCLI@2任务构建的。
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<LangVersion>9.0</LangVersion>
</PropertyGroup>
</Project>
知道如何解决这个问题吗?
【问题讨论】:
标签: asp.net-core azure-pipelines asp.net-core-3.1 razorgenerator c#-9.0