错误 NU1102:无法找到版本为 (>= 4.9.3) 的包 NuGet.Frameworks
error NU1102: Unable to find package NuGet.Frameworks with version (>= 4.9.3)
我在尝试使用 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\a21\s\src\StorageRegistryPortal\StorageRegistryPortal.csproj...
我的解决方案中没有任何内容引用此 "NuGet.Frameworks" 包。所以,我想知道是不是 "dotnet.exe" CLI 本身依赖于这个 nuget 包,然后才能恢复其余的 NuGet 包。此外,这只发生在 AzureDevops 中。当我在本地 PC 上执行 build/cake 脚本时,它能够毫无问题地成功恢复所有 nuget 包。
我已经尝试将 "Use Nuget 4.9.3" 任务添加到构建管道,但我遇到了同样的错误。
注意:如果我删除那个 "Use Nuget 4.9.3" 任务,则错误会更改为 (>= 4.7.0)。因此,它似乎在寻找与 nuget.exe 当前版本相匹配的 Nuget.Framework 但没有找到它。
这是我的构建管道设置的屏幕截图:
能否请您尝试使用 Nuget 4.9.1 作为屏幕截图,然后 运行 重新构建?
希望对您有所帮助。
我终于能够解决这个问题。事实证明,nuget.org 人员进行了重大更改,导致我们的内部 nuget 服务器无法为 NuGet.Frameworks 的 4.7 和 4.9.3 版本提供服务。这是一个必不可少的 nuget 库,dotnet.exe 需要它来恢复 nuget 包。对于 .net 核心项目,该框架需要为 4.7 或更高版本。无论如何,解决方案是我们必须对我们的内部 nuget 服务器进行调整以解决 nuget.org.
的变化。
TL;DR
当从私有 Azure DevOps Artifacts/Packages NuGet 存储库拉取时,在我的 Linux/Ubuntu 构建服务器之一上 运行ning dotnet restore
时,有时会发生这种情况。
适合我的解决方案:
- 重新启动 Linux 机器,或
- 正在删除位于 ~/.local/share/NuGet/v3-cache/[directory-with-name-of-my-private-nuget-repo]
的 NuGet 缓存
背景
我得到的错误是:
error NU1102: Unable to find package [Name-of-my-custom-nuget-package] with version (>= 5.0.116)
我有一个 nuget.config 文件,该文件已正确配置以下载我的 NuGet 程序包。
这个错误完全是胡说八道。
- 版本存在
- 其他Linux盒子没有问题运行宁
dotnet restore
和获取包的版本
- 我可以 运行
dotnet restore
在同一台 Linux 机器上用于其他(旧)版本并且没问题
似乎 dotnet restore
决定,无论出于何种原因,它甚至不会尝试寻找新版本的软件包。
我通常发现使用 AAD 保护的 Azure DevOps 私有 NuGet 存储库在处理 Linux 时特别有问题和烦人。它确实需要 NuGet 团队的关爱和关注。
我在尝试使用 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\a21\s\src\StorageRegistryPortal\StorageRegistryPortal.csproj...
我的解决方案中没有任何内容引用此 "NuGet.Frameworks" 包。所以,我想知道是不是 "dotnet.exe" CLI 本身依赖于这个 nuget 包,然后才能恢复其余的 NuGet 包。此外,这只发生在 AzureDevops 中。当我在本地 PC 上执行 build/cake 脚本时,它能够毫无问题地成功恢复所有 nuget 包。
我已经尝试将 "Use Nuget 4.9.3" 任务添加到构建管道,但我遇到了同样的错误。
注意:如果我删除那个 "Use Nuget 4.9.3" 任务,则错误会更改为 (>= 4.7.0)。因此,它似乎在寻找与 nuget.exe 当前版本相匹配的 Nuget.Framework 但没有找到它。
这是我的构建管道设置的屏幕截图:
能否请您尝试使用 Nuget 4.9.1 作为屏幕截图,然后 运行 重新构建?
希望对您有所帮助。
我终于能够解决这个问题。事实证明,nuget.org 人员进行了重大更改,导致我们的内部 nuget 服务器无法为 NuGet.Frameworks 的 4.7 和 4.9.3 版本提供服务。这是一个必不可少的 nuget 库,dotnet.exe 需要它来恢复 nuget 包。对于 .net 核心项目,该框架需要为 4.7 或更高版本。无论如何,解决方案是我们必须对我们的内部 nuget 服务器进行调整以解决 nuget.org.
的变化。TL;DR
当从私有 Azure DevOps Artifacts/Packages NuGet 存储库拉取时,在我的 Linux/Ubuntu 构建服务器之一上 运行ning dotnet restore
时,有时会发生这种情况。
适合我的解决方案:
- 重新启动 Linux 机器,或
- 正在删除位于 ~/.local/share/NuGet/v3-cache/[directory-with-name-of-my-private-nuget-repo] 的 NuGet 缓存
背景
我得到的错误是:
error NU1102: Unable to find package [Name-of-my-custom-nuget-package] with version (>= 5.0.116)
我有一个 nuget.config 文件,该文件已正确配置以下载我的 NuGet 程序包。
这个错误完全是胡说八道。
- 版本存在
- 其他Linux盒子没有问题运行宁
dotnet restore
和获取包的版本 - 我可以 运行
dotnet restore
在同一台 Linux 机器上用于其他(旧)版本并且没问题
似乎 dotnet restore
决定,无论出于何种原因,它甚至不会尝试寻找新版本的软件包。
我通常发现使用 AAD 保护的 Azure DevOps 私有 NuGet 存储库在处理 Linux 时特别有问题和烦人。它确实需要 NuGet 团队的关爱和关注。