azure-devops - Azure DevOps:迁移到 .NET Core 3.0 后管道中断
问题描述
我有一个包含多个 .NET Standard 2.0、.NET Standard 2.1、.NET Core 3.0 和完整 .NET Framework 4.8 项目的解决方案。管道如下所示:
pool:
name: Azure Pipelines
demands:
- msbuild
- visualstudio
variables:
BuildPlatform: 'any cpu'
BuildConfiguration: 'release'
steps:
- task: UseDotNet@2
displayName: 'Use .NET Core sdk 3.0'
inputs:
version: 3.0.100
- task: DotNetCoreCLI@2
displayName: 'dotnet restore'
inputs:
command: restore
projects: '**/*.csproj'
- task: NuGetToolInstaller@1
displayName: 'Use NuGet 4.9.1'
inputs:
versionSpec: 4.9.1
checkLatest: true
- task: NuGetCommand@2
displayName: 'NuGet restore'
- task: VSBuild@1
displayName: 'Build solution **\*.sln'
inputs:
vsVersion: 16.0
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
clean: true
- task: DotNetCoreCLI@2
displayName: 'dotnet test'
inputs:
command: test
projects: '**/*tests.csproj'
- task: PublishSymbols@2
displayName: 'Publish symbols path'
inputs:
PublishSymbols: false
安装正确的 SDK 版本后,管道会运行dotnet restore
以下载 .NET Standard 和 .NET Core 项目使用的所有 NuGet 包。之后,它会安装 NuGet 并使用它来恢复完整 .NET Framework 项目使用的 NuGet 包。
但是,迁移到 .NET Core 3.0 后,NuGet 还原失败并出现以下错误:
[错误] nuget 命令失败,退出代码 (1) 和错误(NU1202:包 Microsoft.EntityFrameworkCore.SqlServer 3.0.0 与 netcoreapp3.0 (.NETCoreApp,Version=v3.0) 不兼容。包 Microsoft.EntityFrameworkCore。 SqlServer 3.0.0 支持:netstandard2.1 (.NETStandard,Version=v2.1)
NU1202:包 Microsoft.EntityFrameworkCore.Tools 3.0.0 与 netcoreapp3.0 (.NETCoreApp,Version=v3.0) 不兼容。包 Microsoft.EntityFrameworkCore.Tools 3.0.0 支持:netstandard2.1 (.NETStandard,Version=v2.1) NU1202:包 Microsoft.EntityFrameworkCore.Relational 3.0.0 与 netcoreapp3.0 (.NETCoreApp,Version=v3.0) 不兼容。 0)。包 Microsoft.EntityFrameworkCore.Relational 3.0.0 支持:netstandard2.1 (.NETStandard,Version=v2.1) d:\a\1\s\Pagesp.ChaveMovel.AspNetCore.Site.Identity.v2\Pagesp.ChaveMovel 中的错误.AspNetCore.Site.Identity.v2.csproj NU1202:包 Microsoft.EntityFrameworkCore.SqlServer 3.0.0 与 netcoreapp3.0 (.NETCoreApp,Version=v3.0) 不兼容。包 Microsoft.EntityFrameworkCore.SqlServer 3.0.0 支持:netstandard2.1 (.NETStandard,Version=v2.1) NU1202:包 Microsoft。EntityFrameworkCore.Tools 3.0.0 与 netcoreapp3.0 (.NETCoreApp,Version=v3.0) 不兼容。包 Microsoft.EntityFrameworkCore.Tools 3.0.0 支持:netstandard2.1 (.NETStandard,Version=v2.1) NU1202:包 Microsoft.EntityFrameworkCore.Relational 3.0.0 与 netcoreapp3.0 (.NETCoreApp,Version=v3.0) 不兼容。 0)。包 Microsoft.EntityFrameworkCore.Relational 3.0.0 支持:netstandard2.1 (.NETStandard,Version=v2.1))
[错误] 包无法恢复
关于如何解决这个问题的任何想法?
解决方案
1)我设法使用以下方法复制您的问题:
- 您的管道
- 示例项目(来源)
2)我在Nuget任务中注释掉了versionSpec
,之后管道成功完成:
- task: NuGetToolInstaller@1
displayName: 'Use NuGet 4.9.1'
inputs:
# versionSpec: 4.9.1
checkLatest: true
3)自动安装的NuGet版本是5.3.0
推荐阅读
- git - Github:从 PR 中删除添加的文件
- azure - 部署前 Azure clean $web
- reactjs - 使用自定义钩子封装 useEffect 和 AJAX 请求
- format - 如何在乳胶中漂浮长桌?
- android - 启动 geth 节点时应用程序在启动时崩溃
- architecture - 系统设计 观看直播的用户数
- android - 从一个文件导入到另一个文件的问题 - Flutter
- sql - postgreSQL:使用 WHERE .. LIKE 在列上分隔函数
- macos - 即使执行了协同设计过程,应用程序在 macOS High Sierra 10.13.6 中意外退出?
- android - Android撰写约束布局问题