如何使用Nuget API连接到Nuget在线存储库?

时间:2014-04-13 07:22:21

标签: nuget nuget-server

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

我应该使用不同的Repository类吗?

这是我的Package Manager初始化代码

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

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

1 个答案:

答案 0 :(得分: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);
}