2014-04-13 3 views
2

HTTP URI를 사용하여 Nuget Online 저장소에 연결하려고합니다. PackageManager 개체를 사용하고 생성자에 DataServicePackageRepository 개체를 제공하고 있습니다. 목록을 가져 오는 것 같지 않습니다. 내가 뭘 잘못하고 있니?Nuget API를 사용하여 Nuget 온라인 저장소에 어떻게 연결합니까?

다른 저장소 클래스를 사용해야합니까? 당신은 당신이 직접 DataServicePackageRepository 또는 패키지 매니저를 사용할 필요가 없습니다 패키지 목록을 원하는 경우

여기 내 패키지 관리자 초기화 코드

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

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

답변

4

입니다. 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); 
} 
관련 문제