gpt4 book ai didi

.net - NuGet 还原失败 - .NET 7.0 与 .NET Standard 2.0 的兼容性

转载 作者:行者123 更新时间:2023-12-02 15:44:44 26 4
gpt4 key购买 nike

我有一个 .NET 7.0 ASP.NET 项目的解决方案,该项目在同一解决方案中有一个 .NET Standard 2.0 库的项目引用。在我的机器上所有构建和执行都很好。

我在 Azure DevOps 中有一个管道,用于构建项目并旨在将 ASP.NET 项目部署到服务器。在构建之前,它运行任务 NuGetCommand@2 以针对 **/*.sln 执行 NuGet 恢复。这正在 windows-2022 Azure VM 镜像上运行。

由于这些错误导致的恢复炸弹:

Package Microsoft.OpenApi 1.4.3 is not compatible with net70 (.NETFramework,Version=v7.0). Package Microsoft.OpenApi 1.4.3 supports: netstandard2.0 (.NETStandard,Version=v2.0)
Errors in D:\a\1\s\MyApp.csproj
Project MyLibrary is not compatible with net70 (.NETFramework,Version=v7.0). Project MyLibrary supports: netstandard2.0 (.NETStandard,Version=v2.0)

这对我来说就像是在说您不能在 .NET 7.0 项目中使用 .NET Standard 2.0 库,但兼容性文档似乎另有声明。这是怎么回事?

最佳答案

12/3 更新

在调查和引用这个问题的过程中,我发现了这张工单Github_Nuget_Tool_Cache_issue#16800 ,更多开发人员对这种设计行为感到困惑。

到目前为止,唯一的解决方法似乎是额外安装 6.4.x

你也可以提出 feature request ticket引起更多关注,以便将来对此行为进行更新。

============================================= =================

12 月 1 日的原始帖子

我使用 nuget 工具安装程序 安装了 6.4.0.123 的最新 nuget 版本 task确保 Microsoft.OpenApi 1.4.3 与 net7.0 的兼容性。

============================================= =======

12/2 更新

来自Microsoft.OpenAPI.1.4.3的源页面,此版本旨在与 DotNet 7.0 兼容。

在调查过程中,我查看了调试日志,发现 nuget 还原任务在 window-2022 中使用 4.x 的缓存版本。而且我想这个版本肯定与 dotnet 70 不兼容。 enter image description here

将更高版本的 nuget 安装到 6.4.x 后,一切都兼容。 enter image description here

所以我认为 nuget 版本可能是导致不同行为的关键。 (甚至可能是 Nuget 4.1 无法识别 Microsoft.OpenAPI1.4.3Dotnet 7.0 之间的兼容性)

引用

NuGet 4.9 Release Notes

NuGet 5.11 Release Notes

NuGet 6.4 Release Notes

关于.net - NuGet 还原失败 - .NET 7.0 与 .NET Standard 2.0 的兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74634126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com