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

Raf*_*ger 4 nuget nuget-package-restore azure-devops .net-5 asp.net-core-5.0

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

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

我可以毫无问题地进行构建,但是当它开始使用 Nuget Package 进行打包时,出现了以下错误:

[错误] nuget 命令失败,退出代码 (1)

NU1202:包 Microsoft.EntityFrameworkCore 5.0.0 与 net50 (.NETFramework,Version=v5.0) 不兼容。包 Microsoft.EntityFrameworkCore 5.0.0 支持:netstandard2.1 (.NETStandard,Version=v2.1)

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

<PropertyGroup>
  <TargetFramework>net5.0</TargetFramework>
  <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
  <Version>1.8.8.9</Version>
  <PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
Run Code Online (Sandbox Code Playgroud)

我已经尝试更改 Build 上的操作系统,但出现此错误:

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

有人有想法吗?

Hug*_*Lin 6

包 Microsoft.EntityFrameworkCore.Relational 5.0.0 支持:netstandard2.1 (.NETStandard,Version=v2.1)

这是因为它使用的是旧版本的 Nuget。您可以尝试将其更改为 5.x 并恢复。

在此处输入图片说明

这是一个类似问题的案例,您可以参考。