У меня есть проект ASP.NET Core 3.x, созданный и развернутый с использованием Azure DevOps Pipelines. После обновления проекта для использования 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 generate завершилась с кодом 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.Razor
SDK. - В проекте используется
TargetFramework
либоnetcoreapp3.0
, либоnetcoreapp3.1
. - В проекте используется
LangVersion
из9.0
. - Проект построен с использованием
DotNetCoreCLI@2
задачи Azure DevOps.
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<LangVersion>9.0</LangVersion>
</PropertyGroup>
</Project>
Есть идеи, как решить эту проблему?