我正在尝试使用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");
答案 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);
}