当我将 .net core 3.1 更新到 .net core 6 时,DevOps 管道 CI 出错
DevOps pipeline CI error when I updated .net core 3.1 to .net core 6
所以我将解决方案的所有项目更新为 .net core 6,之前每个项目都是 .net core 3.1。
然后我开始在构建步骤中遇到以下错误:
##[error]PjInspe.Tests\PjInspe.Tests.csproj(0,0): Error NU1201:
Project PjInspe.Aplicacao is not compatible with netcoreapp3.1
(.NETCoreApp,Version=v3.1). Project PjInspe.Aplicacao supports:
net6.0 (.NETCoreApp,Version=v6.0)
但是所有的项目在 .csproj 中都有这个
这是唯一失败的项目
有什么解决办法吗?
编辑:
我的管道 YAML
我正在使用 windows 2022 到 运行 CI 并且我在构建日志中看到了来自 net6 的 sdk
pool:
name: Azure Pipelines
steps:
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
projects: '**/*Project.csproj'
vstsFeed: '***************'
- task: DotNetCoreCLI@2
displayName: Build
inputs:
projects: '$(Parameters.RestoreBuildProjects)'
arguments: '--configuration $(BuildConfiguration)'
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: test
projects: '$(Parameters.TestProjects)'
arguments: '--configuration $(BuildConfiguration)'
- task: DotNetCoreCLI@2
displayName: Publish
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)'
zipAfterPublish: True
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
condition: succeededOrFailed()
正确的方法应该是修改你的dotnetcore cli任务如下
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: test
version: '6.0.x' //better to put this in a variable
projects: '$(Parameters.TestProjects)'
arguments: '--configuration $(BuildConfiguration)'
但我仍然遇到类似的构建问题。我通过使用 use dotnet core task BEFORE all other tasks 并指定我需要的版本来修复它。
这是我使用的yaml代码
- task: UseDotNet@2
displayName: 'Use .NET 6 Core sdk'
inputs:
packageType: 'sdk'
version: '6.0.x'
所以我将解决方案的所有项目更新为 .net core 6,之前每个项目都是 .net core 3.1。
然后我开始在构建步骤中遇到以下错误:
##[error]PjInspe.Tests\PjInspe.Tests.csproj(0,0): Error NU1201:
Project PjInspe.Aplicacao is not compatible with netcoreapp3.1
(.NETCoreApp,Version=v3.1). Project PjInspe.Aplicacao supports:
net6.0 (.NETCoreApp,Version=v6.0)
但是所有的项目在 .csproj 中都有这个
这是唯一失败的项目
有什么解决办法吗?
编辑:
我的管道 YAML
我正在使用 windows 2022 到 运行 CI 并且我在构建日志中看到了来自 net6 的 sdk
pool:
name: Azure Pipelines
steps:
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
projects: '**/*Project.csproj'
vstsFeed: '***************'
- task: DotNetCoreCLI@2
displayName: Build
inputs:
projects: '$(Parameters.RestoreBuildProjects)'
arguments: '--configuration $(BuildConfiguration)'
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: test
projects: '$(Parameters.TestProjects)'
arguments: '--configuration $(BuildConfiguration)'
- task: DotNetCoreCLI@2
displayName: Publish
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)'
zipAfterPublish: True
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
condition: succeededOrFailed()
正确的方法应该是修改你的dotnetcore cli任务如下
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: test
version: '6.0.x' //better to put this in a variable
projects: '$(Parameters.TestProjects)'
arguments: '--configuration $(BuildConfiguration)'
但我仍然遇到类似的构建问题。我通过使用 use dotnet core task BEFORE all other tasks 并指定我需要的版本来修复它。
这是我使用的yaml代码
- task: UseDotNet@2
displayName: 'Use .NET 6 Core sdk'
inputs:
packageType: 'sdk'
version: '6.0.x'