2011-01-14 21 views
15

रोज़गार की जगह पर हमारे पास एक स्वभावपूर्ण प्रॉक्सी सर्वर है जो अक्सर nuget संकुल विंडो को अनुपयोगी बनाता है (यह nuget कमांड लाइन के लिए भी सच है)। मैंने उन पैकेजों की प्रतिलिपि बनाना शुरू कर दिया है जिन्हें हम अक्सर नेटवर्क शेयर पर स्थानीय दर्पण में उपयोग करते हैं, लेकिन मैन्युअल रूप से ऐसा करना कठिन हो गया है। मैंने स्वचालित रूप से संकुल डाउनलोड करने के लिए पावरहेल का उपयोग करने के साथ प्रयोग किया है, लेकिन कुछ पैकेजों से अधिक दिखाने के लिए ओडाटा यूरी नहीं लग रहा है। उदाहरण के लिए निम्न क्वेरी चलाएं:आधिकारिक nuget पैकेज रिपॉजिटरी

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

शीर्ष 100 पैकेजों को वापस लौटाएं जिनके शीर्षक 'ओ' से शुरू हो रहा है, लेकिन कोई पैकेज वापस नहीं किया जाता है। अजीब बात यह पैकेज नामों के साथ ठीक काम करती है जो http://feed.nuget.org/ctp2/odata/v1/Packages पर मारकर लौटाए गए पैकेज की डिफ़ॉल्ट सूची में हैं। मैं अनुमान लगा रहा हूं कि कुछ प्रकार की पेजिंग चल रही है, जहां मैं केवल पहले पृष्ठ पर पूछताछ कर रहा हूं। पैरामीटर के साथ खेलना मुझे लगता है कि अगले पृष्ठ में बदलने में सक्षम नहीं है ...

क्या किसी और ने ऐसा करने की कोशिश की है? क्या किसी और ने न्यूजेट का उपयोग करके टाइमआउट/खराब अनुरोधों को देखा है?

उत्तर

9

जॉन गैलोवे एक पी एस स्क्रिप्ट है कि पूरे भंडार डाउनलोड करता था। मैंने इसे दो मशीनों पर इस्तेमाल किया है और यह मेरे लिए बहुत अच्छा काम करता है।

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

+0

यह शानदार जवाब था। मैंने पीएस लिपि का इस्तेमाल किया। बाद में मैंने Nuget.Downloader का उपयोग किया। लेकिन आज मैंने पाया है, दोनों काम नहीं कर रहे हैं ... तो, महोदय; क्या आपके पास इस प्रश्न के लिए एक अद्यतन उत्तर है? –

2

डबल कोट्स में स्ट्रिंग का उपयोग करते समय आपको सावधान रहना होगा। पहले यूआरएल मूल्यांकन करने के लिए केवल एक भाग के प्रयास करें, या:

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 
बैकटिक साथ डॉलर साइन भागने

फिर मैंने साइट को (उम्मीद है) सही यूआरएल के साथ पूछने की कोशिश की, लेकिन कोई परिणाम प्रविष्टि वापस नहीं आई। तो - अभी भी कोई भाग्य नहीं है और सेवा के साथ कुछ गलत हो सकता है।

3

मेरे सुझाव New-ODataServiceProxy या उपयोग करने के लिए है भी डौग फिंके के 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 
संबंधित मुद्दे