2

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

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

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

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

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

1 回答 1

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);
}
于 2014-04-13T09:35:15.613 回答