Зеркальное отображение официального репозитория Nuget - PullRequest
15 голосов
/ 14 января 2011

В моем месте работы у нас есть темпераментный прокси-сервер, который часто делает окно пакетов nuget непригодным для использования (то же самое верно и для командной строки nuget). Я начал копировать пакеты, которые мы используем чаще всего, в локальное зеркало на сетевом ресурсе, но делать это вручную стало утомительно. Я экспериментировал с использованием powershell для автоматической загрузки пакетов, но, похоже, не удалось заставить uri оддаты показывать более нескольких пакетов. Например, запустив следующий запрос:

$feed = [xml]$webClient.DownloadString("http://feed.nuget.org/ctp2/odata/v1/Packages?$filter=startswith(Title,'O') eq true&$top=100")

Должен вернуть 100 лучших пакетов, заголовок которых начинается с 'O', но пакеты не возвращаются. Странно, но это прекрасно работает с именами пакетов, которые находятся в списке пакетов по умолчанию, возвращаемых нажатием http://feed.nuget.org/ctp2/odata/v1/Packages. Я догадываюсь , что происходит какое-то пейджинговое сообщение, когда я запрашиваю только первую страницу. Играя с параметрами, я не могу перейти на следующую страницу ...

Кто-нибудь еще пытался это сделать? Кто-нибудь еще заметил таймауты / плохие запросы, используя nuget?

Ответы [ 3 ]

9 голосов
/ 13 февраля 2011

Джон Галлоуэй опубликовал PS-скрипт, который загружает весь репозиторий. Я использовал его на нескольких машинах, и он прекрасно работает для меня.

http://weblogs.asp.net/jongalloway/downloading-a-local-nuget-repository-with-powershell

3 голосов
/ 17 января 2011

Я предлагаю использовать New-ODataServiceProxy или даже проект PSOdata Дуга Финке

С помощью только функции прокси вы можете сделать это:

New-ODataServiceProxy http://packages.nuget.org/v1/FeedService.svc/ NuGet
 # Chain up calls to AddQueryOption (please excuse my line wrapping):
$NuGet.Packages.AddQueryOption( '$filter',"startswith(Title,'O') eq true"
              ).AddQueryOption( '$top','3' ) |
Format-Table Id, Version, Authors, Description -Wrap -Auto
2 голосов
/ 17 января 2011

Вы должны быть осторожны при использовании строки в двойных кавычках.Попробуйте сначала оценить URL или только часть:

PS> "?$filter=startswith(Title,'O') eq true&$top=100"
?=startswith(Title,'O') eq true&=100

PS> "?`$filter=startswith(Title,'O') eq true&`$top=100"
?$filter=startswith(Title,'O') eq true&$top=100

Избегайте знака доллара с помощью backtick.

Затем я попытался запросить сайт (надеюсь) с правильным URL, нозапись результата была возвращена.Так что - все равно не повезло, и с сервисом может быть что-то не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...