2011-08-31 19 views
41

मैंने एक वीएस-प्रोजेक्ट में एक NuGet पैकेज (जिसे हमने प्रोजेक्ट में विकसित किया है) स्थापित किया है। जब मैं nuget परियोजना पर Update-Package चलाने मैं प्राप्त करें:Nuget अद्यतन-पैकेज स्थापित पैकेज को पहचान नहीं करता है -> अद्यतन विफल

Update-Package : 'Project name' was not installed in any project. Update failed. 
At line:1 char:15 
+ Update-Package <<<< Project name 
    + CategoryInfo   : NotSpecified: (:) [Update-Package], InvalidOperationException 
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.UpdatePackageCommand 

मुझे यकीन है कि NuGet पैकेज परिभाषित किया गया है बनाने के लिए package.config फ़ाइल में जाँच की है, और यह है। कोई सुराग?

+0

आप एक ही फ़ोल्डर एक संकुल फ़ोल्डर को साझा करने में कई समाधान है में संकुल बहाल चलाने? क्या आप स्रोत नियंत्रण में संकुल कर रहे हैं? – davidfowl

+0

नहीं और नहीं। हम समाधान के बीच संकुल फ़ोल्डर साझा नहीं करते हैं और हम स्रोत नियंत्रण के लिए पैकेज में काम नहीं कर रहे हैं। हालांकि, यह अब कोई समस्या नहीं है। मैंने संकुल के लिए सभी पुरानी फ़ोल्डरों को हटा दिया और फिर से काम करना शुरू कर दिया। –

+0

मुझे लगता है कि पैकेज पैकेज में निर्दिष्ट एक से अलग संस्करण हो सकता है (क्योंकि हम उन्हें जांच नहीं रहे हैं) पैकेज.कॉन्फिग में निर्दिष्ट एक की तुलना में, शायद इसमें कुछ कहना है? –

उत्तर

49

मैं उसी प्रोजेक्ट पर काम कर रहा हूं क्योंकि टॉमस और मैंने यह पता लगाने की कोशिश की है कि यह समस्या कब होती है और क्यों। ऐसा लगता है कि यह तब होता है जब हमारे पास संकुल फ़ोल्डर में एक पैकेज के एक या अधिक पुराने संस्करण होते हैं और 'अद्यतन-पैकेज' आदेश जारी करने का प्रयास करते हैं।

आदेश जारी करने के हमारे संकुल फ़ोल्डर और config इस तरह दिखता है से पहले:

संकुल फ़ोल्डर:

Common.WebApi.1.0.0.109 
Common.WebApi.1.0.0.110 

संकुल config:

<packages> 
    <package id="Common.WebApi" version="1.0.0.110" /> 
    <package id="System.Json" version="4.0.20126.16343" /> 
    <package id="System.Net.Http" version="2.0.20126.16343" /> 
</packages> 

अब, जब 'अपडेट- पैकेज जारी करने के आम .WebApi 'हमें त्रुटि मिलती है:
अद्यतन-पैकेज:' OPF.Common.WebApi 'किसी भी प्रोजेक्ट में स्थापित नहीं किया गया था। अपडेट विफल हुआ।

इसे ठीक करने के लिए मैं पैकेज फ़ोल्डर से पुराने पैकेज 'Common.WebApi.1.0.0.109' को हटा देता हूं और फिर कमांड को फिर से चालू करता हूं।

स्पष्ट प्रश्न यह है: मेरे पैकेज फ़ोल्डर में मेरा पुराना पैकेज क्यों है? यह हमारे साथ होता है क्योंकि हम स्रोत नियंत्रण में अपने स्वयं के पैकेज नहीं करते हैं। इसके बजाय, हम दृष्टिकोण है जो यहाँ वर्णित है का उपयोग करें: http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

'पुराने पैकेज समस्या' इस स्थिति में होती है:
1. डेवलपर एक एक पैकेज अद्यतन करता है और स्रोत नियंत्रण
से 2 package.config करता है।डेवलपर बी को स्रोत नियंत्रण से नवीनतम संस्करण प्राप्त होता है और अद्यतन पैकेज.config
प्राप्त करता है 3. डेवलपर बी प्रोजेक्ट बनाता है और नया पैकेज उसके पैकेज फ़ोल्डर
में बनाया गया है 4. Nuget डेवलपर बी के पुराने पैकेज को अपने पैकेज से हटा नहीं देता है फ़ोल्डर इसलिए डेवलपर बी में अब उनके पैकेज फ़ोल्डर में पुराना पैकेज और नया पैकेज है, लेकिन केवल नए संस्करण में package.config में एक संदर्भ है।

मेरे लिए ऐसा लगता है कि Nuget संकुल फ़ोल्डर में एक पैकेज के एक से अधिक संस्करण होने की उम्मीद नहीं करता है और जब आप एक पैकेज को अद्यतन करने का प्रयास करते हैं तो संकुल हो जाता है जिसमें कई संस्करण [संकुल फ़ोल्डर में] भी होते हैं हालांकि आप केवल package.config से एक ही पैकेज का संदर्भ देते हैं।

+6

एक लंबी कहानी को कम करने के लिए: सुनिश्चित करें कि 'पैकेज' फ़ोल्डर में आपके पैकेज का कोई अप्रयुक्त संस्करण नहीं है। उनको हटाने से समस्या ठीक हो जाती है। – jgauffin

5

मेरे पास हाल ही में एक बहुत ही समान समस्या थी - यह पता चला कि संकुल/repositories.config गायब था (क्योंकि हम पैकेज फ़ोल्डर नहीं करते हैं)। मैंने वीएस में कुछ किया (संभवतः किसी प्रोजेक्ट में एक नया पैकेज जोड़ना) जिसके कारण वीएस ने सभी परियोजनाओं के सभी पैकेजों को सूचीबद्ध करने वाली रिपॉजिटरीज.कॉन्फिग फ़ाइल को पुन: उत्पन्न किया। उसके बाद, अद्यतन ठीक काम किया।

+0

मेरे परिदृश्य की तरह लगता है। –

+0

आपके समान मामला - मैंने बनाम फ़ाइल को 4 बार डाउनलोड किया था और नामों को जोड़ा गया था (1), (2) और (3) एक बार जब मैंने हटा दिया और NuGet.Tools.vsix नामक एक को छोड़ दिया तो यह काम करता था। (मुझे विश्वास है कि जब आप नगेट को अपडेट करने का प्रयास करते हैं और त्रुटि के साथ विफल रहता है तो आप इसे किसी भी तरह से नगेट से इंस्टॉल नहीं कर सकते हैं। कम से कम यह मेरा अनुभव था। – ramnz

+0

वही। स्रोत नियंत्रण के लिए भगवान का शुक्र है। – Casey

2

यहाँ कैसे मैं पैकेज प्रबंधक के नवीनतम संस्करण को पाने में कामयाब रहे है:

  1. प्रारंभ व्यवस्थापक मोड (व्यवस्थापक के रूप में चलाने)
  2. उपकरण में VS2010 प्रबंधक में जोड़ें> स्थापना रद्द करें NuGet>
  3. पुनः प्रारंभ दृश्य स्टूडियो
  4. NuGet

देखा स्थापित करें!

उम्मीद है कि इससे मदद मिलती है।

3

मुझे एक ही समस्या थी। हम संकुल फ़ोल्डर में जांच नहीं कर रहे हैं (nuget बिल्ड कार्य सभी संकुल डाउनलोड करता है)।

समस्या हल करने का एकमात्र तरीका पैकेज फ़ोल्डर को हटाना था और फिर परियोजना को पुनर्निर्माण करना था।

0

एक और तरीका यह हो सकता है:

  1. नहीं संकुल है पुनर्स्थापित किया जा रहा
  2. कोशिश (ReSharper उदाहरण के लिए 2016.2 बिल्ड का उपयोग करना) जबकि प्रश्न में पैकेज संस्करण को अद्यतन करने के लिए मौजूद नहीं है में/संकुल/

ठीक करने के लिए, किसी तरह

संबंधित मुद्दे