azure 错误NU1102:找不到版本为(>= 4.9.3)的软件包NuGet.Frameworks

zpjtge22  于 2023-03-03  发布在  其他
关注(0)|答案(5)|浏览(377)

我尝试使用Azure DevOps构建.NET核心解决方案时遇到此错误:

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"

在抛出上述NU 1102错误之前,它尝试从解决方案文件还原NuGet包:

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

我的解决方案中没有任何内容引用此“NuGet.Frameworks”包。因此,我想知道是否是“dotnet.exe”CLI本身在恢复其余NuGet包之前依赖此nuget包。此外,这仅发生在AzureDevops中。当我在本地PC上执行build/cake脚本时,它能够成功恢复所有nuget包,没有任何问题。
我已经尝试过向构建管道添加一个“Use Nuget 4.9.3”任务,但是我得到了同样的错误。
注意:如果我删除了“使用Nuget 4.9.3”任务,那么错误将变为(〉= 4.7.0)。因此,它似乎正在查找与当前版本的nuget.exe匹配的Nuget.Framework,但没有找到它。
下面是我的构建管道设置的屏幕截图:

kd3sttzy

kd3sttzy1#

    • TL; DR**

在我的Linux/Ubuntu构建服务器上运行dotnet restore时,从私有Azure DevOps工件/包NuGet存储库中提取时,有时会发生这种情况。
适合我的解决方案:
1.重新启动Linux计算机,或
1.正在删除位于~/. local/share/NuGet/v3-cache/[具有我的私有nuget-repo名称的目录]的NuGet缓存

    • 背景**

我得到的错误是:
error NU1102: Unable to find package [Name-of-my-custom-nuget-package] with version (>= 5.0.116)
我有一个nuget.config文件,它被正确配置为拉下我的nuget包。
这个错误完全是无稽之谈。
1.版本不存在
1.其他Linux机器在运行dotnet restore和获取软件包版本方面没有问题
1.我可以在同一台Linux机器上运行其他(较旧)版本的dotnet restore,这很好
看起来dotnet restore决定,不管出于什么原因,它甚至不打算尝试寻找包的新版本。
我发现Azure DevOps私有的NuGet repos使用AAD进行保护,在处理Linux时尤其麻烦,真的需要NuGet团队的喜爱和关注。

wz1wpwve

wz1wpwve2#

我终于能够解决这个问题。原来www.example.com的人有一个突破性的变化nuget.org,导致我们的内部nuget服务器无法服务于4.7和4.9.3版本的NuGet.Frameworks。这是一个基本的nuget库,它是dotnet.exe恢复nuget包所必需的。对于.net核心项目,该框架需要4.7版本或更高版本。无论如何,解决方案是我们必须调整内部nuget服务器以适应nuget.org的变化。

h79rfbju

h79rfbju3#

你可以尝试使用Nuget4.9.1作为截图,然后再次运行你的构建吗?

希望有帮助。

ltqd579y

ltqd579y4#

尝试从这里下载更高版本的nuget.framework https://www.nuget.org/downloads。在我的情况下,这是版本5. 0. 0的问题,我安装了5. 0. 2,然后错误消失了。

zzlelutf

zzlelutf5#

这是一个很容易的事情先尝试

我们也使用内部NuGet服务器,但我不认为这是本例的问题所在。
我做了一个包,版本有0.8.3、0.9.0和0.9.1。每个版本都有一些突破性的变化。所以代码没有编译。我在0.9.1上得到了错误NU1102 Unable to find package...
我回到0.8.3,然后又回到0.9.1,最后它工作了。(我正在编辑csproj文件PackageReference,Version)
我怀疑编译错误把nuget搞得一团糟。

相关问题