首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LocalPackageRepository返回所有包的IsLatestVersion=true

LocalPackageRepository返回所有包的IsLatestVersion=true
EN

Stack Overflow用户
提问于 2015-06-10 22:44:50
回答 1查看 323关注 0票数 0

我在C:\packages上创建了一个文件夹。在内部,我创建了两个具有相同I的包,但是有不同的版本。我使用Nuget.Core创建指向此目录的LocalPackageRepository。

当我使用respository.FindPackages("myId")查询包时,服务将正确地返回两个包。然而,对于这两个包,IsLatestVersion都是真正的,尽管它们的版本显然不同。

我尝试过的事情:我知道这些包被分割为OptimizedZipPackages,通过查看源代码这里,我找不到任何与实现有关的问题。

我将本地存储库添加到Visual提要管理器中。当我查询该服务时,会显示最新版本。

我创建包、实例化存储库或库中的bug的方式似乎有问题。

使用NuGet Core v2.8.60318.667

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-11 08:42:03

查看源代码,如果LocalPackage包不是预发布版,则IsLatestVersion总是返回true。

在Visual中,会通过删除列表中的所有最新版本来进一步过滤包列表,因此您只能看到最新版本。这样做的一种方法是使用NuGet中包含的扩展方法:

代码语言:javascript
运行
复制
packages.DistinctLast<IPackage>(PackageEqualityComparer.Id);

DistinctLast方法假定相同的NuGet包id将一起出现在列表中,否则它将无法正确地过滤它们。

我相信您也可以使用与上面类似的AsCollapsed扩展方法。它基本上做到了:

代码语言:javascript
运行
复制
packages.DistinctLast<IPackage>(PackageEqualityComparer.Id, PackageEqualityComparer.Version);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30768593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档