我正在尝试使用Nuget.Core API查询proget服务器。这个方法:
using System.IO.Packaging;
public IEnumerable<IPackage> GetAllProgramPackages(string feedUrl)
{
var repository = PackageRepositoryFactory.Default.CreateRepository(feedUrl);
var query = repository.GetPackages();
var programPackages = query.Where(p => p.Tags.Contains("ClientPackage"));
return programPackages;
}
根据我的理解,它应该只返回标签包含“ClientPackage”的包。 它实际上返回整个存储库,这是不可取的。我总是可以在查询返回后过滤客户端,但是在我们的存储库中有几千个nuget包,这不是一个好的选择。
是否可以针对proget服务器对标签运行OData查询,并让它在服务器端执行?
答案 0 :(得分:1)
是的,您可以过滤substringof
匹配的任何属性(类似于C#中的Contains()
)。只需使用:
http://proget/nuget/Default/Packages()?$filter=substringof(tags,'ClientPackage')