Reflejando el repositorio oficial paquete Nuget
-
11-10-2019 - |
Pregunta
En mi lugar de trabajo tenemos un servidor proxy temperamental que a menudo hace que la ventana de paquetes NuGet inutilizable (lo mismo es cierto para la línea de comandos Nuget). He empezado a copiar los paquetes que utilizamos más a menudo a una réplica local en una red compartida, pero haciendo esto de forma manual ha llegar a ser tedioso. He experimentado con el uso de PowerShell para descargar los paquetes de forma automática, pero parece que no puede conseguir el URI OData para mostrar más de unos pocos paquetes. Por ejemplo ejecutando la consulta siguiente:
$feed = [xml]$webClient.DownloadString("http://feed.nuget.org/ctp2/odata/v1/Packages?$filter=startswith(Title,'O') eq true&$top=100")
En caso de devolver los paquetes de la parte superior 100 que tienen un título que comienza con 'O', pero no se devuelven los paquetes. Extrañamente esta bien trabaja con los nombres de paquetes que se encuentran en la lista predeterminada de paquetes devueltos por golpear http://feed.nuget.org/ctp2/odata/v1/Packages
. Estoy adivinanzas que hay algún tipo de paginación pasando, donde sólo estoy preguntando sobre la primera página. Jugando con los parámetros que no parecen ser capaces de cambiar a la siguiente página ...
¿Alguien más ha tratado de hacer esto? Alguien más ha notado los tiempos de espera / malos peticiones usando Nuget?
Solución
Jon Galloway registró un script que descarga PS todo el repositorio. Lo he utilizado en un par de máquinas y funciona muy bien para mí.
http://weblogs.asp.net / jongalloway / descarga-a-local-Nuget-repositorio-con-PowerShell
Otros consejos
Mi sugerencia es utilizar la Nueva ODataServiceProxy o incluso Doug Finke de proyecto PSOdata
Con sólo la función de proxy se puede hacer esto:
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
hay que tener cuidado cuando se utiliza cadena entre comillas dobles. Trate de evaluar la url primero, o sólo una parte:
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
Escapar el signo de dólar con acento grave.
Luego trató de consultar el sitio con (esperemos) URL correcta, pero se ha devuelto ninguna entrada resultado. Por lo tanto -. Sigue sin suerte y podría haber algo malo con el servicio