2013-11-21 8 views
12

मैं एक प्रोजेक्ट पर काम कर रहा हूं जो nuget का उपयोग करता है लेकिन पैकेज पुनर्स्थापना का उपयोग नहीं करता है। (यह मेरे नियंत्रण के बाहर एक निर्णय है, इसलिए पैकेज पुनर्स्थापना को सक्षम करने वाले किसी भी उत्तर में वे उपयोग नहीं कर पाएंगे।)पैकेज पुनर्स्थापना का उपयोग नहीं कर रहा है, लेकिन फिर भी "nuget पैकेज को स्थापित करना होगा Microsoft.Bcl.Build"

समाधान में कुछ हद तक परियोजनाएं (4 में से 4

...packages\Microsoft.Bcl.Build.1.0.13\tools\Microsoft.Bcl.Build.targets(225,5): warning : All projects referencing Valhalla.Consumer.Core.csproj must install nuget package Microsoft.Bcl.Build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317569.

वह लिंक मानता है कि मैं चालू करने के लिए चाहता हूँ: 34 के कुल एक WinJS app की दुकान परियोजना, दो साधारण नेट वर्ग पुस्तकालय, और मेरे Azure क्लाउड प्रोजेक्ट में से एक) इस कुख्यात चेतावनी रिपोर्ट कर रहे हैं पैकेज बहाल पर। तो क्या इस विषय पर अब तक की हर दूसरी सलाह है जिसे मैंने अभी तक प्रबंधित किया है।

मैंने विकल्पों में पैकेज पुनर्स्थापना को अक्षम करने का प्रयास किया -> पैकेज प्रबंधक -> सामान्य सेटिंग्स, वैसे भी। इससे मदद नहीं मिलती है (और यदि यह भी हुआ, तो यह अवांछित होगा - मैं जिस चीज पर काम करता हूं, उसमें पैकेज पुनर्स्थापना का उपयोग करता हूं)।

मुझे सच में समझ में नहीं आ रहा है कि मैं इसे ऐसे समाधान में क्यों प्राप्त कर रहा हूं जो पैकेज पुनर्स्थापना का उपयोग नहीं करता है। जैसा कि मैं इसे समझता हूं, पैकेज के पूरे बिंदु को यह पैकेज पुनर्स्थापना का समर्थन करना है। तो एक समाधान में जिसमें पैकेज पुनर्स्थापना उपयोग में नहीं है, यह इस पैकेज के मौजूद होने के लिए अजीब लगता है।

हालांकि, ऐसा लगता है कि कुछ अन्य nuget संकुल आपको इस पर निर्भर करते हैं। मेरे पास एक विंडोज रनटाइम घटक प्रोजेक्ट है जो Microsoft.Bcl का उपयोग करता है, जो कि किसी कारण से Microsoft.Bcl.Build पर निर्भरता है। (जब मैंने प्रोजेक्ट बनाया था तो विजुअल स्टूडियो मेरे लिए Microsoft.Bcl पैकेज जोड़ना प्रतीत होता था। संभवतः यह आवश्यक है।) अन्य परियोजनाएं HTTP क्लाइंट पुस्तकालयों के माध्यम से Microsoft.Bcl.Build पर निर्भरता प्राप्त करने लगती हैं।

तो जाहिर है, कुछ आम nuget संकुल Microsoft.Bcl.Build पर निर्भरता को मजबूर करने लगते हैं चाहे आप पैकेज पुनर्स्थापना का उपयोग कर रहे हों या नहीं।

यह ठीक होगा अगर आप इस चेतावनी को प्राप्त करने वाली सभी परियोजनाओं के लिए प्रासंगिक पैकेज जोड़कर चेतावनी को खत्म कर सकते हैं। लेकिन परेशान बात यह है कि भले ही मैं Microsoft.Bcl.Build पैकेज उपभोग करने वाले घटकों (जैसे, मेरे विनजेएस विंडो स्टोर ऐप) में जोड़ूं, फिर भी मुझे यह चेतावनी मिलती है! (इसलिए यह शिकायत जारी रखता है कि मुझे इसे स्थापित करने के बाद भी nuget पैकेज स्थापित करने की आवश्यकता है।)

क्या कोई इस स्थिति में इस चेतावनी को कैसे खत्म कर सकता है? ऐसा करने से मुझे जो करना है वह करना पर्याप्त प्रतीत नहीं होता है। क्या कमी है?

+1

आप इस परियोजना में SkipValidatePackageReferences संपत्ति का उपयोग कर की कोशिश की के रूप में में सुझाव दिया Microsoft.Bcl.Build.targets फ़ाइल? –

+0

हालांकि इससे छुटकारा पाता है, क्या यह वैध चेतावनियों को भी रोक नहीं पाएगा? यदि प्रोजेक्ट यू प्रोजेक्ट पी का उपयोग करता है, तो यू में सभी समान nuget संकुल पी के रूप में होना चाहिए। आम तौर पर, nuget जांच करेगा और आपको बताएगा कि क्या आप कुछ खो रहे हैं, लेकिन यह सेटिंग उस चेक को अक्षम करती है। जब मैं वास्तव में एक पैकेज खो रहा हूं, तो मुझे चेतावनियां प्राप्त करना चाहूंगा, लेकिन जब मैं वास्तव में इसका संदर्भ करता हूं तो 'माइक्रोसॉफ्ट.बीसी.बिल्ड' के बारे में चेतावनियां नहीं मिलतीं। –

+0

डुनो अगर पैकेज पुनर्स्थापना सक्षम है तो NuGet के v2.7 + में ओओटीबी कोई उपयोग है ('माइक्रोसॉफ्ट.बीक्ल.बिल्ड' के जिल्च को जानें) –

उत्तर

7

मुझे एक ही समस्या थी। 1.0.13 से 1.0.14 तक Microsoft.Bcl.Build पैकेज को अद्यतन करने से मेरी समस्या हल हो गई।

+0

मुझे वीएस संस्करण –

+0

अपडेट करना पड़ा था, मैं बनाम 2013 समुदाय अपडेट 4 के साथ पहले ही 1.0.14 पर हूं, और मुझे चेतावनी मिली है। मुझे क्या करना चाहिए ? – Julian50

+0

@FrankSposaro किस संस्करण को स्थापित करने के लिए किया था? – Julian50

4

हमें हाल ही में एक ही समस्या थी। Nuget 2.8 का उपयोग करके, बीसीएल 1.0.14, बीसीएल 1.1.9 का निर्माण, हमारे पास बीसीएल बिल्ड का उपयोग करके एक प्रोजेक्ट ए था, जिसे किसी अन्य प्रोजेक्ट बी द्वारा संदर्भित किया गया था।

लघु कहानी: प्रोजेक्ट बी संकलन ने उल्लिखित त्रुटि दी है हालांकि पैक किए गए थे इसमें जोड़ा गया। समाधान संकुल को हटाने और उन्हें फिर से जोड़ने के लिए था। हमने प्रोजेक्ट ए और बी

दोनों के लिए ऐसा करने का अंत किया है, मुझे विश्वास है कि समस्या का कारण संस्करणों में एक मेल नहीं था। बीसीएल 1.1.8 (नवीनतम संस्करण जब इसे बनाया गया था) संदर्भित मूल परियोजना थी, जबकि प्रोजेक्ट बी ने हाल ही में बीसीएल 1.1.9 का उपयोग किया था।

मुझे यकीन नहीं है कि यह प्रासंगिक है लेकिन पहली बार हमने प्रोजेक्ट-> NuGet पैकेज मैनेजर का उपयोग करके पैकेज जोड़े, और 2 वें समय हमने NuGet कंसोल (टूल्स-> Nuget-> कंसोल) का उपयोग किया।

निकालें, परियोजना बी के csproj में एक स्पष्ट अंतर निम्नलिखित लाइनों जोड़ा गया था की वजह से जोड़ें:

<Import Project="..\..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" /> 

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