2014-04-13 30 views
2

我正尝试使用HTTP URI连接到Nuget Online存储库。我正在使用PackageManager对象,并在构造函数中为它提供了DataServicePackageRepository对象。它似乎没有获取列表。我可能做错了什么?如何使用Nuget API连接到Nuget在线存储库?

我应该使用不同的存储库类吗?

这里是我的包管理器初始化代码

var remoteRepo = new NuGet.DataServicePackageRepository(new Uri("http://myserver/myrepo/nuget")); 

PackageManager pkgMan = new PackageManager(remoteRepo, @"C:\Path\To\LocalRepoPath"); 

回答

4

如果你只是想你不需要直接使用DataServicePackageRepository或PackageManager包的列表。您可以使用PackageRepositoryFactory和IPackageRepository.GetPackages()方法。

以下代码返回按下载次数最多的前10个软件包。这与Visual Studio在“管理包”对话框中返回的内容类似。

string url = "https://www.nuget.org/api/v2/"; 
IPackageRepository repo = PackageRepositoryFactory.Default.CreateRepository(url); 
var packages = repo 
    .GetPackages() 
    .Where(p => p.IsLatestVersion) 
    .OrderByDescending(p => p.DownloadCount) 
    .Take(10); 

foreach (IPackage package in packages) { 
    Console.WriteLine(package); 
}