Powershell 镜像官方nuget包存储库

Powershell 镜像官方nuget包存储库,powershell,nuget,Powershell,Nuget,在我工作的地方,我们有一个变化无常的代理服务器,它经常使nuget packages窗口无法使用(nuget命令行也是如此)。我已经开始将我们最常用的软件包复制到网络共享上的本地镜像,但手动执行此操作已经变得很乏味。我尝试过使用powershell自动下载软件包,但似乎无法让ODataURI显示更多的软件包。例如,运行以下查询: $feed = [xml]$webClient.DownloadString("http://feed.nuget.org/ctp2/odata/v1/Packages

在我工作的地方,我们有一个变化无常的代理服务器,它经常使nuget packages窗口无法使用(nuget命令行也是如此)。我已经开始将我们最常用的软件包复制到网络共享上的本地镜像,但手动执行此操作已经变得很乏味。我尝试过使用powershell自动下载软件包,但似乎无法让ODataURI显示更多的软件包。例如,运行以下查询:

$feed = [xml]$webClient.DownloadString("http://feed.nuget.org/ctp2/odata/v1/Packages?$filter=startswith(Title,'O') eq true&$top=100")
应返回标题以“O”开头但未返回任何包的前100个包。奇怪的是,对于通过点击
http://feed.nuget.org/ctp2/odata/v1/Packages
。我猜有某种分页正在进行,我只是在第一页上查询。玩的参数,我似乎无法更改到下一页


还有其他人试过这样做吗?其他人是否注意到使用nuget的超时/错误请求?

在使用双引号中的字符串时需要小心。尝试先评估url,或仅评估部分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
用反勾号避开美元符号


然后我尝试用(希望是)正确的url查询站点,但没有返回结果条目。所以-仍然不走运,服务可能有问题。

我的建议是使用或甚至是Doug Finke的

仅使用代理功能,您就可以执行以下操作:

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

Jon Galloway发布了一个PS脚本,可以下载整个存储库。我在几台机器上使用过它,它对我来说非常有用


这是一个很棒的回答。我使用了ps脚本。后来我用了Nuget.Downloader。但今天我发现,他们都不工作。。。因此,主席先生;你有这个问题的最新答案吗?