【问题标题】:Azure Devops - Compatibility problems moving from .NET Core 3.1 to .NET 5 at Nuget PackageAzure Devops - 在 Nuget 包中从 .NET Core 3.1 迁移到 .NET 5 的兼容性问题
【发布时间】:2020-11-15 08:28:54
【问题描述】:

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

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

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

[错误] 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>

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

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

有人有想法吗?

【问题讨论】:

    标签: azure-devops nuget nuget-package-restore .net-5 asp.net-core-5.0


    【解决方案1】:

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

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

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

    【讨论】:

    • nuget update -self 如果使用具有 cmd、终端或 powershell 访问权限的构建环境,则可以解决问题。
    • 如何进入此设置对话框?
    • @DanielB,这是一个名为 NuGet 工具安装程序的 Azure DevOps Pipelines 任务。
    • 我添加了- task: NuGetToolInstaller@1 inputs: versionSpec: 5.x,但它不起作用。我仍然遇到同样的错误。
    • 奇怪。添加此任务后,我仍然收到该警告。
    猜你喜欢
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 2020-10-26
    相关资源
    最近更新 更多