首页 > 解决方案 > 错误 NU1102:无法找到版本 (>= 4.9.3) 的包 NuGet.Frameworks

问题描述

当我尝试使用 Azure DevOps 构建 .NET Core 解决方案时出现此错误:

error NU1102:  Unable to find package NuGet Frameworks with version (>= 4.9.3)
error NU1102:   - Found 33 version(s) in http://nuget.bentley.com/nuget/Default [ Nearest version: 4.7.0-preview1-4986 ]

当 dotnet.exe CLI 执行 NuGet 还原时,Cake 脚本中会出现错误:

Executing: "d:/vsts/a/_tool/dncs/2.2.100/x64/dotnet.exe" restore "./src/StorageRegistryPortal.sln" --source "http://nuget.bentley.com/nuget/Default"

在抛出上述 NU1102 错误之前,它会尝试从解决方案文件中恢复 NuGet 包:

 Restoring packages for d:\vsts\a\2921\s\src\StorageRegistryPortal\StorageRegistryPortal.csproj...

我的解决方案中没有任何内容引用这个“NuGet.Frameworks”包。所以,我想知道是否是“dotnet.exe”CLI 本身依赖于这个 nuget 包,然后才能恢复其余的 NuGet 包。此外,这只发生在 AzureDevops 中。当我在本地 PC 上执行构建/蛋糕脚本时,它能够成功恢复所有 nuget 包而没有问题。

我已经尝试将“使用 Nuget 4.9.3”任务添加到构建管道,但我得到了同样的错误。

注意:如果我删除了“使用 Nuget 4.9.3”任务,则错误将更改为 (>= 4.7.0)。因此,它似乎正在寻找与当前版本的 nuget.exe 匹配的 Nuget.Framework,但没有找到它。

这是我的构建管道设置的屏幕截图: 在此处输入图像描述

标签: azureasp.net-coreazure-devopsnugetazure-deployment

解决方案


我终于能够解决这个问题。事实证明,nuget.org 人员进行了一项重大更改,导致我们的内部 nuget 服务器无法为 NuGet.Frameworks 的 4.7 和 4.9.3 版本提供服务。这是 dotnet.exe 还原 nuget 包所需的基本 nuget 库。对于 .net 核心项目,该框架需要是 4.7 或更高版本。无论如何,解决方案是我们必须对我们的内部 nuget 服务器进行调整,以应对来自 nuget.org 的更改。


推荐阅读