2012-12-31 30 views
8

मैं NuGet में निम्न त्रुटि प्राप्त जब TeamCity के NuGet सर्वर से स्रोतों की स्थापना का निर्माण कदम स्थापित करें:TeamCity Nuget स्थापित निर्माण कदम कई स्रोतों के साथ काम नहीं, उनमें से एक टीसी के निजी NuGet फ़ीड

Step 1/4: NuGet install (NuGet Installer) (3s) 

[15:11:19][Step 1/4] scan: Searching for nuget.config files 

[15:11:19][Step 1/4] install: Installing NuGet packages for packages.config (3s) 

[15:11:19][install] NuGet command: C:\TeamCity\buildAgent\tools\NuGet.CommandLine.2.2.0.nupkg\tools\NuGet.exe install C:\TeamCity\buildAgent\work\a4b9de5be22a981\packages.config -OutputDirectory C:\TeamCity\buildAgent\work\a4b9de5be22a981\packages -Source http://localhost:9090/guestAuth/app/nuget/v1/FeedService.svc 

[15:11:19][install] Starting: C:\TeamCity\buildAgent\temp\agentTmp\custom_script96367186180319830.cmd 

[15:11:19][install] in directory: C:\TeamCity\buildAgent\work\a4b9de5be22a981 

[15:11:22][install] The remote server returned an error: (404) Not Found. 

[15:11:22][install] Process exited with code 1 

[15:11:22][Step 1/4] Step NuGet install (NuGet Installer) failed 

अगर मैं सूत्रों छोड़ फ़ील्ड रिक्त, यह डिफ़ॉल्ट फ़ीड (NuGet समुदाय फ़ीड) से NuGet संकुल पाएगा, लेकिन उन लोगों को नहीं जिन्हें स्थानीय रूप से बनाया और पैक किया गया है और टीसी की NuGet फ़ीड के भीतर होस्ट किया गया है।

आप NuGet इंस्टॉलर बिल्ड चरण के भीतर डिफ़ॉल्ट फ़ीड और आंतरिक टीसी की NuGet फ़ीड दोनों का उपयोग कैसे करते हैं?

+0

क्या आपने पैकेज सिटी के रूप में बिल्ड चरण में टीम सिटी NuGet फ़ीड यूआरएल और मानक NuGet फ़ीड यूआरएल डालने का प्रयास किया था? NuGet.exe कमांड लाइन ऐसा लगता है कि यह केवल एक पैकेज स्रोत का उपयोग कर रहा है। मैं टीम सिटी नुगेट फीड यूआरएल भी सही जांचूंगा और गेस्ट ऑथ चालू हो जाएगा क्योंकि मुझे नहीं लगता कि इसे 404 लौटाया जाना चाहिए। NuGet.exe को यह संकेत देना चाहिए कि पैकेज नहीं मिला था और 404 नहीं। –

+0

404 ऐसा होता है क्योंकि पैकेज स्रोत फ़ील्ड में% teamcity.nuget.feed.server% का उपयोग करते समय इसे अतिथि (कोई ऑथ) टीसी की NuGet फ़ीड में अनुवादित किया जाता है (जो http: // localhost: 9090/guestAuth/app/nuget/v1/FeedService.svc)। हालांकि, मेरे पास सार्वजनिक फ़ीड अक्षम है। यही कारण है कि 404. मुझे अभी पता चला। अभी भी निजी फ़ीड के साथ ऐसा करने के तरीके पर शोध करना और समाधान ढूंढना अभी बाकी है। – mare

+0

यहां एक समान समस्या है जो मुझे सही दिशा में इंगित करती है हालांकि यह निजी टीसी NuGet फ़ीड के लिए काम नहीं करती है: http://stackoverflow.com/questions/12897747/how-should-i-tell-teamcitys-nuget-installer- बिल्ड-टू-टू-यूज-दोनों-न्यूज-ऑर्ग- – mare

उत्तर

15

आप nuget.config फ़ाइल के माध्यम से समाधान के लिए कस्टम फ़ीड निर्दिष्ट कर सकते हैं।

प्रमुख मुद्दा इस तरह साख अनुभाग packageSourceCredentials प्रदान करना है:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <packageSources> 
    <add key="Local" value="http://localhost:9090/httpAuth/app/nuget/v1/FeedService.svc" /> 
    </packageSources> 
    <activePackageSource> 
    <add key="Local" value="http://localhost:9090/httpAuth/app/nuget/v1/FeedService.svc" /> 
    </activePackageSource> 
    <packageSourceCredentials> 
    <Local> 
     <Username>login</Username> 
     <Password>pa$$w0rd</Password> 
    </Local> 
    </packageSourceCredentials> 
</configuration> 

यह config फ़ाइल भंडार में sln फ़ाइल के आगे होना चाहिए।

+1

यह समाधान निश्चित रूप से आसान है लेकिन यह आपके भंडार पासवर्ड स्रोत नियंत्रण को छोड़ देता है। इसे आम तौर पर एक [सुरक्षा जोखिम] माना जाता है (http://stackoverflow.com/questions/559611/password-storage-in-source-control)। –

+0

यह समाधान तब भी काम करता है जब प्रमाण-पत्र प्रदान नहीं किए जाते हैं और संकुल नेटवर्क भंडार पर होते हैं। – Shriroop

3

यह टीमसिटी के लिए known issue प्रतीत होता है। वैकल्पिक हल कमांड लाइन ग्राहक के माध्यम से पैकेज स्रोत जोड़ने का सुझाव देता है और फिर प्राधिकरण प्रमाणिकता के साथ उन स्रोतों को अपडेट करने:

nuget sources add -name [name] -source [feedUrl] 
nuget sources update -Name [name] -User [username] -pass [password] 

यह मेरी समझ है कि Nuget भावी अनुरोधों के लिए उन क्रेडेंशियल कैश जाएगा। मुझे नहीं पता कि कैश कितनी बार साफ़ हो जाता है; कैश सुसंगत है यह सुनिश्चित करने के लिए कि आप अपने निर्माण को बंद करने से ठीक पहले nget sources update को चलाने की आवश्यकता हो सकती है।

+0

वे उपयोगकर्ताओं को nuget.config में जोड़ा जाता है। उदाहरण: सी: \ उपयोगकर्ता \ john \ appdata \ nuget \ nuget.config वे समाप्त नहीं होते – Sam

3

हमने टीमसिटी प्लगइन में प्रमाणीकृत फ़ीड समर्थन लागू किया। कृपया इस मुद्दे पर टिप्पणियों का पालन करें http://youtrack.jetbrains.com/issue/TW-20764