2014-04-13 38 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); 
}