15

私の職場には、nugetパッケージウィンドウを使用できなくすることが多い気質のプロキシサーバーがあります(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を使用したタイムアウト/不正なリクエストに気付いた人はいますか?

4

3 に答える 3

9

Jon Gallowayは、リポジトリ全体をダウンロードするPSスクリプトを投稿しました。私はそれをいくつかのマシンで使用しました、そしてそれは私にとって素晴らしい働きをします。

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

于 2011-02-13T00:52:40.983 に答える
3

私の提案は、New-ODataServiceProxyまたはDougFinkeの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
于 2011-01-17T16:30:49.877 に答える
2

文字列を二重引用符で囲む場合は注意が必要です。最初に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でサイトにクエリを実行しようとしましたが、結果エントリが返されませんでした。ですから、それでも運がなく、サービスに何か問題がある可能性があります。

于 2011-01-16T21:34:42.373 に答える