Visual Studio 2017 में निर्भरता पर येलो वार्निंग त्रिकोण का क्या अर्थ है?


109

मैंने अभी-अभी अपनी PCL लाइब्रेरी को एक नई .Net मानक लाइब्रेरी में परिवर्तित किया है और मेरे नीचे दिखाए गए मेरे डिपेंडेंसी पर कुछ येलो वार्निंग त्रिकोण हैं:

यहाँ छवि विवरण दर्ज करें

रूपांतरण के दौरान इसने निर्भरता सहित सभी नौगट पैकेज लाए ताकि यह डलीकेट हो सके।

मुझे कैसे पता चलता है कि येलो चेतावनी त्रिकोण क्या दर्शाते हैं?

संपादित करें

लॉग बनाएँ:

निर्माण के दौरान संकुल को बहाल करने से NuGet को रोकने के लिए, Visual Studio विकल्प संवाद खोलें, पैकेज प्रबंधक नोड पर क्लिक करें और निर्माण के दौरान अनुपलब्ध संकुल को डाउनलोड करने के लिए NuGet को अनचेक करें। NU1605: पैकेज का डाउनग्रेड किया गया पता: NUnit 3.8.1 से 2.6.4 तक। एक अलग संस्करण का चयन करने के लिए परियोजना से सीधे पैकेज का संदर्भ दें।
MyProj.UI.Tests -> MyProj.Core.Tests -> NUnit (> = 3.8.1)
MyProj.UI.Tests -> NUnit (> = 2.6.4) NU1605: पैकेज डाउनग्रेड किया गया पता: 3.8.1 से 2.6.4 तक NUnit। किसी भिन्न संस्करण का चयन करने के लिए प्रोजेक्ट से सीधे पैकेज का संदर्भ लें। MyProj.UI.Tests.iOS -> MyProj.UI.Tests -> MyProj.Core.Tests -> NUnit (> = 3.8.1) MyProj.UI.Tests.iOS -> NUnit (> = 2.6.4) NU1605: पैकेज डाउनग्रेड का पता लगाया: 3.8.1 से 2.6.4 तक NUnit। एक अलग संस्करण का चयन करने के लिए परियोजना से सीधे पैकेज का संदर्भ दें।
MyProj.UI.Tests.Android -> MyProj.UI.Tests -> MyProj.Core.Tests -> NUnit (> = 3.8.1) MyProj.UI.Tests.Android -> NUnit (> = 2.6.4)


उन पर होवर करें और यह आपको बताएगा। ज्यादातर बार ऐसा इसलिए होता है क्योंकि यह उन्हें ढूंढ नहीं सकता / हल नहीं कर सकता है या कोई विरोध मौजूद है। यदि आप त्रुटि विंडो में भी देखते हैं तो यह समाधान में त्रुटि की व्याख्या करता है।
न्कोसी

57
@ नोकोसी उनके ऊपर मंडराते हुए मेरे लिए कुछ भी नहीं दिखाते हैं
user1

2
जब आप अपना प्रोग्राम बनाते हैं तो इन संदर्भों का उपयोग किया जाता है। लेकिन वे IDE के लिए भी मायने रखते हैं, इसे IntelliSense प्रदान करने के लिए उन्हें हल करने की आवश्यकता है। यदि वह विफल रहता है तो आपको चेतावनी त्रिकोण मिलता है। त्रुटि संदेश प्राप्त करने के लिए बिल्ड> बिल्ड का उपयोग करें।
हंस पसंत

33
जब मेरे साथ ऐसा हुआ, तो कोई चेतावनी नहीं थी। चेतावनी आइकन बस यूआई में फंस गया था। परियोजना को उतारना और फिर से लोड करना इसे तय करता है।
स्टैकऑवरथ्रो

1
@ टीकेके: मुझे लगता है कि यह केवल कुछ मिनटों के लिए रहता है, फिर यूआई में चेतावनी त्रिकोण। समाधान को फिर से खोलने के बाद कम से कम मेरे साथ ऐसा ही हुआ। मुझे लगा कि यह पहली बार में तय किया गया था, लेकिन फिर चेतावनी के त्रिकोण अचानक से प्रकट हो गए।
पूसइन्बूट्स

जवाबों:


78

जैसा कि यह लग रहा है, फिर से वी.एस. को पुनः आरंभ करने की कोशिश करें - और अपने दिन के साथ आगे बढ़ें :)


5
मुझे क्लासिक "इसे पुनः आरंभ करने का प्रयास करें" समाधान की याद दिलाने के लिए धन्यवाद :)। आखिरी घंटे बिताते हुए सोचा कि जब मैंने अपना समाधान बनाया तो वीएस मेरे पैकेज को क्यों निकाल रहा था। मैंने वीएस को फिर से शुरू किया और सब कुछ उम्मीद के मुताबिक काम किया। / उघ
रेयान ई।

1
क्लैसिक "शट डाउन" इसका हमेशा दुनिया की सभी
खराबियों

मैंने अभी हाल के संस्करण (16.5.1) के साथ अपने विजुअल स्टूडियो 2019 को सटीक होने के लिए अपडेट किया है। और मुद्दा अभी भी मौजूद है, लेकिन यह समाधान अभी भी काम करता है :)
विली डेविड जूनियर

इसे बंद करें और फिर से :-D
डॉन Ch

63

dotnet restoreकिसी भी जटिल हेरफेर को करने से पहले चलाएं , आपको त्रुटि विंडो या समाधान एक्सप्लोरर की तुलना में बहुत अधिक जानकारी प्रदान की जाएगी।

आप इस कमांड को पैकेज मैनेजर कंसोल में चला सकते हैं:

उपकरण> NuGet पैकेज प्रबंधक> पैकेज प्रबंधक कंसोल


4
वीएस को पुनरारंभ करने के बजाय समाधान को फिर से खोलना मेरे लिए भी काम कर गया।
क्विड

मैं डॉटनेट को पुनर्स्थापित क्यों करूंगा? क्या बिल्ड को ऐसा नहीं करना है?
pabrams

11

बिल्ड लॉग में मैं यह नोटिस करने के लिए हुआ:

C: \ Program Files \ dotnet \ sdk \ 2.0.2 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.NET.Sdk.DefaultItems.targets (199,5): चेतावनी: 'NETPAL.Library' के लिए एक PackageReference था आपके प्रोजेक्ट में शामिल है। यह पैकेज .NET एसडीके द्वारा अनुमानित रूप से संदर्भित है और आपको आमतौर पर इसे अपने प्रोजेक्ट से संदर्भित करने की आवश्यकता नहीं है। अधिक जानकारी के लिए, https://aka.ms/sdkimplicitrefs देखें

इसलिए मैंने उन सभी पैकेजों को अनइंस्टॉल कर .Net Standard दिया, जो यहां सूचीबद्ध नगेट के लिए निर्भरता के रूप में सूचीबद्ध थे :

। NETStandard 1.1

  • Microsoft.NETCore.Platforms (> = 1.1.0)

  • प्रणाली। चयन (> = 4.3.0)

  • System.Collections.Concurrent (> = 4.3.0)

  • System.Diagnostics.Debug (> => 4.3.0)

  • System.Diagnostics.Tools (> = 4.3.0)

  • System.Diagnostics.Tracing (> = 4.3.0)

  • System.Globalization (> = 4.3.0)

  • System.IO (> = 4.3.0)

  • System.IO.Compression (> = 4.3.0)

  • System.Linq (> = 4.3.0)

  • System.Linq.Expressions (> = 4.3.0)

  • System.Net.Http (> = 4.3.2)

  • System.Net.Primatics (> = 4.3.0)

  • System.ObjectModel (> = 4.3.0)

  • System.Reflection (> = 4.3.0)

  • System.Reflection.Extensions (> = 4.3.0)

  • System.Reflection.Primatics (> = 4.3.0)

  • System.Resource.ResourceManager (> = 4.3.0)

  • System.Runtime (> = 4.3.0)

  • System.Runtime.Extensions (> = 4.3.0)

  • System.Runtime.InteropServices (> = 4.3.0)

  • System.Runtime.InteropServices.RuntimeInformation (> => 4.3.0)

  • System.Runtime.Numerics (> = 4.3.0)

  • System.Text.Encoding (> = 4.3.0)

  • System.Text.Encoding.Extensions (> = 4.3.0)

  • System.Text.RegularExpressions (> = 4.3.0)

  • System.Threading (> = 4.3.0)

  • System.Threading.Tasks (> = 4.3.0)

  • System.Xml.ReaderWriter (> = 4.3.0)

  • System.Xml.XDocument (> = 4.3.0)

और पीली चेतावनी गायब हो गई।

यहाँ से: https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-standard-2-0/

मैंने यह भी पाया है कि आप नीचे की तरह NoWarn संपत्ति का उपयोग कर सकते हैं:

<ItemGroup>
  <PackageReference Include="Huitian.PowerCollections" Version="1.0.0" NoWarn="NU1701" />
</ItemGroup>

8

येलो ट्राइएंगल का मतलब है कि पैकेज फिजिकल फाइल (एस) चला गया है और हार्ड ड्राइव पर उपलब्ध नहीं है।

यह आमतौर get latest versionपर टीएफएस में स्रोत नियंत्रण पर एक अनुरोध जारी करते समय होता है , खासकर जब एक नई मशीन का उपयोग करते हुए, और आप अपना प्रोजेक्ट कोड टीएफएस सर्वर से प्राप्त करना चाहते हैं।

यह भी कारण हो सकता है low quality internet connectionजिसके परिणामस्वरूप लगभग हमेशा डेटा हानि, या दूषित डाउनलोड की गई फ़ाइलें होंगी।

यहाँ छवि विवरण दर्ज करें

यदि समस्या कुछ पैकेजों को याद कर रही है, तो आप packages.configफ़ाइल को संशोधित कर सकते हैं और इन पैकेजों को हटा सकते हैं packages.configऔर नगेट संकुल प्रबंधक के माध्यम से लापता पैकेजों को पुनः स्थापित कर सकते हैं।

लेकिन अगर समस्या कुछ पैकेजों से अधिक याद आ रही है, तो लापता पैकेजों को पुनः प्राप्त करने के लिए सबसे अच्छा और तेज़ तरीका मेरे द्वारा उपयोग किया जाता है:

  1. दृश्य स्टूडियो का एक नया उदाहरण खोलना
  2. एक ही प्रोजेक्ट प्रकार के साथ एक नया प्रोजेक्ट सोल्यूशन बनाएं जैसे कि लापता पैकेज (उदाहरण: ASP.Net MVC व्यक्तिगत उपयोगकर्ता खाते के साथ)
  3. पिछले प्रोजेक्ट समाधान के संकुल संस्करणों से मेल करने के लिए नए प्रोजेक्ट के पैकेजों को नवीनतम में अपडेट करें
  4. फ़ाइल एक्सप्लोरर खोलें और आपके द्वारा बनाए गए नए समाधान में संकुल फ़ोल्डर में नेविगेट करें
  5. सभी का Packagesचयन करके फ़ोल्डर की सभी सामग्रियों को कॉपी करें , नोट संकुल फ़ोल्डर की प्रतिलिपि केवल फ़ोल्डर के अंदर की सामग्री की प्रतिलिपि न करें
  6. अपने पिछले समाधान (लापता पैकेज के साथ समाधान) को चिपकाएँ, Packagesमौजूदा आइटम को अधिलेखित फ़ोल्डर में ।
  7. समाधान एक्सप्लोरर में अपने पैकेज फ़ोल्डर में जाएं और इसे विस्तारित करें, फिर ताज़ा बटन पर क्लिक करें यह देखने के लिए कि कई लापता पैकेज अब पीले त्रिकोण के बिना दिखाई दे रहे हैं
  8. अंत में आप कुछ मिसिंग पैकेजों के साथ समाप्त हो जाएंगे, जिन्हें नए समाधान बनाते समय डिफ़ॉल्ट रूप से शामिल नहीं किया जाता है, आपको उन्हें अपने पैकेजों से हटाने की जरूरत है। फाइल फाइल (जिस फाइल को नौगट पैकेज मैनेजर स्थापित पैकेजों को निर्धारित करने के लिए पढ़ता है) नौगेट पैकेज मैनेजर का उपयोग करके नए के रूप में स्थापित करें।

ध्यान दें कि परियोजनाओं से लापता फ़ाइलों से संबंधित समस्याएं हमेशा ठीक करना मुश्किल होता है, और डेवलपर अनुभव पर निर्भर करता है, इसलिए इस एक के लिए एक आसान समाधान की उम्मीद न करें।

त्रुटि के कारण पर, Microsoft का कहना है कि यह एक बग है, लेकिन यह विज़ुअल स्टूडियो के किसी भी संस्करण पर हो सकता है।


1
परियोजनाओं के बारे में, विजुअल स्टूडियो (2019) को फिर से शुरू करना मेरे लिए इसे ठीक करना था।
स्टीव स्मिथ

कोई पैकेज नहीं है
।coinfig

7

बस इस मुद्दे के साथ नए व्यक्ति के लिए प्रलेखन उद्देश्य के लिए यह कोशिश करते हैं और आप याद करेंगे: डी

यदि आप यहां जाते हैं: उपकरण> नुगेट प्रशासक> विन्यास। और आपके पास "अनुमति दें nuget ...." और "स्वचालित रूप से जाँच करें ...." चबाया गया।

केवल एक चीज जो आपको करनी है वह है " con All Nuet Cache" बटन पर क्लिक करें

यह है, आपको मैनुअल थिंकिंग को संपादित करने की ज़रूरत नहीं है जो खतरनाक हो सकती है, मेरा विश्वास करो, मुझे कुछ कदमों का उपयोग करने की आवश्यकता है जो कि यहां बहुत समय बताए गए हैं, और 5 से अधिक चरणों के लिए माइकोलॉजिकल Microsoft दस्तावेज़ का प्रयास करें वह समस्या जिसे आप इसे यहाँ देख सकते हैं: https://docs.microsoft.com/es-es/nuget/consume-packages/package-restore#restore-packages-automatically-use-visual-studio

लेकिन सिर्फ कैशे की सफाई से सारी समस्याएं हल हो जाती हैं


यह उत्तर श्रृंखला को और अधिक वोट दिया जाना चाहिए ..
ग्रेग

7

यदि आपके पास चेतावनी आइकन है, लेकिन कोई चेतावनी नहीं है और वास्तव में कुछ भी गलत नहीं दिखता है, तो प्रोजेक्ट पर राइट क्लिक करें> प्रोजेक्ट को अनलोड करें> प्रोजेक्ट को फिर से राइट क्लिक करें> रिलोड प्रोजेक्ट। आइकन एक पल के लिए दिखाई दिया और फिर विजुअल स्टूडियो 2019 में मेरे लिए मंजूरी दे दी गई। यह एक पूर्ण विज़ुअल स्टूडियो पुनरारंभ से बचा जाता है।


2

ताज्जुब है, मेरी .Net कोर 3 परियोजना को परियोजना के संदर्भ से "लोड प्रोजेक्ट निर्भरता" पर क्लिक करने के लिए मेरी आवश्यकता थी , फिर चेतावनी आइकन गायब हो गया।

सहायक स्क्रीनशॉट:

यहाँ छवि विवरण दर्ज करें


1

मैंने केवल दृश्य स्टूडियो को 16.4.4 में अद्यतन किया और समस्या हल हो गई। संदर्भ तय हो गया है और कोई और अधिक पीला त्रिकोण नहीं है। धन्यवाद।


1

मुझे इस त्रुटि का सामना करना पड़ा जब मैंने प्रोजेक्ट को क्लोन किया। मुख्य कारण Nuget पैकेज पुनर्स्थापित नहीं कर सका और मैं केवल सक्रिय संसाधन nuget.org बनाकर समाधान ढूंढता हूं।

यहाँ छवि विवरण दर्ज करें

सुनिश्चित करें कि आप केवल सक्रिय संसाधन के रूप में Nuget.org का चयन करें।

आशा करता हूँ की ये काम करेगा


1

पीले विस्मयबोधक चिह्न आमतौर पर लापता संदर्भ या असमर्थित dll के कारण होता है। यदि आप एक रिपॉजिटरी को क्लोन करते हैं तो संभावना है कि कई डली पैकेज पीले विस्मयादिबोधक दिखाएंगे। यदि आपने सत्यापित किया है कि परियोजना संस्करण उचित है और अभी भी समस्या मौजूद है तो आप नीचे दिए गए समाधान को आजमा सकते हैं।

पैकेज मैनेजर कंसोल में, उस प्रोजेक्ट का चयन करें जिसमें आप इस समस्या का सामना कर रहे हैं और फिर निम्न कमांड टाइप करें।

Update-Package -Reinstall

यह सभी पैकेजों को फिर से स्थापित करने के लिए मजबूर करेगा। यह कमांड NuGet पैकेज के संस्करण को अपडेट नहीं करेगा, यह बस उन्हें पुनः स्थापित करने के लिए मजबूर करेगा।

इस समाधान ने मेरे मामले में काम किया। मैं VS2019 का उपयोग कर रहा हूं। आशा है कि इससे दूसरों को भी मदद मिलेगी।


0

1 पैकेज हो सकता है जो अन्य सभी को लोड न करने का कारण बन सकता है। एक-एक करके .csproj से संकुल टिप्पणी करने की कोशिश करें और पता करें कि कौन सी समस्या इसे कम करने के लिए है।


0

यदि मैं चिह्नित उत्तरMicrosoft.NETCore.Platforms में बताए अनुसार अनइंस्टॉल करने का प्रयास करता हूं तो मुझे निम्नलिखित त्रुटि मिलती है:

'Microsoft.NETCore.Platforms.1.1.0' की स्थापना रद्द करने में असमर्थ क्योंकि 'NETStandard.Library.2.0.3' इस पर निर्भर करता है।

मैंने अन्य पैकेजों की स्थापना रद्द कर दी है, लेकिन मुझे अभी भी NETSDK1023त्रुटि मिलती है :

आपकी परियोजना में 'NETStandard.Library' के लिए एक पैकेज संदर्भ शामिल किया गया था। यह पैकेज .NET एसडीके द्वारा अनुमानित रूप से संदर्भित है और आपको आमतौर पर इसे अपने प्रोजेक्ट से संदर्भित करने की आवश्यकता नहीं है। अधिक जानकारी के लिए, https://aka.ms/sdkimplicitrefs देखें

अब मैंने अपना .csproj संपादित किया और निम्नलिखित भाग को हटा दिया

<PackageReference Include="NETStandard.Library" Version="2.0.3" />

जैसा कि सिफारिश के तहत https://aka.ms/sdkimplicitrefs में कहा गया है :

.NET कोर या .NET मानक को लक्षित करते समय, अपने प्रोजेक्ट फ़ाइल में आइटम के माध्यम से Microsoft.NETCore.Appया NETStandard.Libraryमेटाफ़ैक्जेस का स्पष्ट संदर्भ कभी न दें <PackageReference>

अब चेतावनी दूर हो गई है!


0

उपरोक्त में से किसी ने भी मेरे लिए काम नहीं किया। मेरे पास समाधान में अन्य परियोजनाओं के लिए निर्भरता पर त्रिकोण की चेतावनी के साथ समाधान में एक परियोजना थी जिसके कारण वीएस में बहुत सारी लाल त्रुटियां थीं। हालाँकि, यह निर्माण, रन और डिबग ठीक होगा। मैंने अंत में समाधान के पेड़ में परियोजना के नाम पर एक राइट क्लिक के साथ परियोजना को अनलोड किया, और फिर परियोजना को फिर से लोड किया और सभी अब खुश हैं। धन्यवाद विज़ुअल स्टूडियो, smh। मैं VS 2019 16.7.1 का उपयोग कर रहा हूं


0

मशीन को पुनरारंभ करें

मेरा मानना ​​है कि मेरी स्थिति यह थी कि कुछ प्रक्रिया कैश फ्लश के बाद कुछ डीएल को जारी नहीं कर रही थी और फिर उस लॉक (?) के कारण डीएलएस का कोई अधिग्रहण विफल हो गया।

अपनी मशीन को फिर से शुरू करके और donet restoreइस मुद्दे को हल करने और मैं फिर से लापता पैकेज त्रुटि के बिना निर्माण कर सकता था।


-3

यदि आपके पास उन सभी NuGet पैकेजों को अपडेट करने में कोई समस्या नहीं है जो इस समस्या को हल कर सकते हैं।

उपकरण मेनू -> NuGet पैकेज मैनेजर -> समाधान के लिए Nuget पैकेज प्रबंधित करें । जब यह मेनू दिखाई दे, तो अपडेट टैब पर क्लिक करें और अपडेट ऑल बटन पर क्लिक करें।


4
क्या वह सभी पैकेजों को नवीनतम संस्करण में अपडेट नहीं करेगा? यह वांछनीय नहीं हो सकता है यदि एक या अधिक पैकेजों के विशिष्ट (गैर-नवीनतम) संस्करण की आवश्यकता होती है।
गर्टसन

यदि आप पहले से ही नवीनतम पैकेजों का उपयोग कर रहे हैं तो यह एक उत्कृष्ट समाधान है। मेरे मुद्दे को तुरंत दूर कर दिया।
n4rzul

1
यह हमेशा समाधान नहीं है। कभी-कभी प्रोजेक्ट के भीतर ऐसे पैकेज होते हैं जिन्हें अपडेट नहीं किया जाना चाहिए।
कारा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.