【问题标题】:Mirroring the official nuget package repository镜像官方nuget包存储库
【发布时间】:2011-01-14 20:20:21
【问题描述】:

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

$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 的超时/错误请求?

【问题讨论】:

    标签: powershell nuget


    【解决方案1】:

    Jon Galloway 发布了一个下载整个存储库的 PS 脚本。我在几台机器上使用过它,对我来说效果很好。

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

    【讨论】:

    • 那是一个很棒的答案。我使用了ps脚本。后来我使用了 Nuget.Downloader。但是今天我发现,它们都不起作用……所以,先生;你有这个问题的最新答案吗?
    【解决方案2】:

    我的建议是使用New-ODataServiceProxy 甚至是Doug Finke 的PSOdata project

    只需代理功能,您就可以做到这一点:

    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
    

    【讨论】:

      【解决方案3】:

      在双引号中使用字符串时需要小心。尝试先评估 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 查询该站点,但没有返回任何结果条目。所以 - 仍然没有运气,服务可能有问题。

      【讨论】:

        猜你喜欢
        • 2018-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-21
        • 2019-04-24
        • 2023-02-14
        • 2021-11-12
        • 2016-12-29
        相关资源
        最近更新 更多