Azure Devops - 在 Nuget 包中从 .NET Core 3.1 迁移到 .NET 5 的兼容性问题

Azure Devops - Compatibility problems moving from .NET Core 3.1 to .NET 5 at Nuget Package

我有一个 .NET Core 解决方案,它 运行 使用 .NET Core 3.1 在 Azure Devops 上使用管道很好地使用。管道上一切正常。

从 .NET Core 3.1 迁移到 .NET 5.0 后,我开始遇到一些奇怪的问题 运行 管道,特别是 Nuget 包。

我可以毫无问题地构建,但是当它开始使用 Nuget 包打包时,我遇到了这个错误:

[error] The nuget command failed with exit code(1)

NU1202: Package Microsoft.EntityFrameworkCore 5.0.0 is not compatible with net50 (.NETFramework,Version=v5.0). Package Microsoft.EntityFrameworkCore 5.0.0 supports: netstandard2.1 (.NETStandard,Version=v2.1)

一些奇怪的事实是这个解决方案 运行 在本地机器上没问题。

<PropertyGroup>
  <TargetFramework>net5.0</TargetFramework>
  <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
  <Version>1.8.8.9</Version>
  <PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>

我已经尝试更改 Build 上的 OS,但出现此错误:

当前可用的 MSBuild 版本是 16.7.0.37604。将 global.json 中指定的 .NET Core SDK 更改为需要当前可用的 MSBuild 版本的旧版本。

有人有想法吗?

Package Microsoft.EntityFrameworkCore.Relational 5.0.0 supports: netstandard2.1 (.NETStandard,Version=v2.1)

这是因为它使用的是旧版本的 Nuget。你可以试试改成5.x再恢复

这里有一个类似的问题,你可以参考。