2015-09-06 5 views
11

मेरे पास मेरे पीसी पर कई सी # परियोजनाओं के साथ एक विजुअल स्टूडियो (सामुदायिक 2013) समाधान है और मैंने अभी 7 से विंडोज 10 में अपग्रेड किया है। प्रोजेक्ट नेट फ्रेमवर्क 4.0 क्लाइंट प्रोफाइल का उपयोग करता है। Win7 पर सब ठीक काम किया, लेकिन अब परियोजनाओं में से एक संदर्भ संदर्भ लोड नहीं लगता है। संदर्भित वस्तुओं के पास पीले त्रिकोण हैं, एक ही समाधान से संदर्भित आइटम नहीं हैं (इसलिए NuGet द्वारा लोड की गई प्रणाली और संदर्भ लोड नहीं किए गए हैं)।विजुअल स्टूडियो परियोजना संदर्भों को लोड नहीं करता

references...

संसाधन समाधान में एक अन्य परियोजना, दूसरों को नहीं है। जब मैं एक प्रणाली संदर्भ के लिए गुण टैब खोलते हैं, Path क्षेत्र, खाली है, और इसलिए Resolved क्षेत्र False है ...

empty path

इसके अलावा में .csproj सब कुछ फाइल ठीक हो रहा है वहाँ <HintPath> नोड्स जहां आवश्यक हैं, रिश्तेदार (या पूर्ण, यदि संदर्भ किसी अन्य ड्राइव पर है), और सही, मौजूदा पथ।
एक और अजीब बात: ऑब्जेक्ट ब्राउज़र में संदर्भ के सभी (प्रतीत होता है) लोड कर रहे हैं:

Object Browser seems to be ok

तो, मुझे क्या करना चाहिए:

  • फिर से बनाते प्रोजेक्ट फ़ाइल (द्वारा नई परियोजना बनाना और सभी फाइलें और संदर्भ दोबारा जोड़ना);
  • प्रोजेक्ट की कॉन्फ़िगरेशन में कुछ बदलना;
  • .Net के एक नए संस्करण का उपयोग करें;
  • वीएस की कॉन्फ़िगरेशन में कुछ बदलना;
  • एक और वीएस (उदाहरण के लिए समुदाय 2015) का उपयोग करें या वर्तमान को पुनर्स्थापित करें?
+0

ढांचा स्थापित किया है? आप अनुपस्थित 4.0 हो सकते हैं 4.5.x नवीनतम है और मुझे संदेह है कि विंडोज 10 में पुराने ढांचे शामिल हैं। और आप कक्षा एक्सप्लोरर में एक नए ढांचे के लिए पुस्तकालयों का निरीक्षण कर सकते हैं, लेकिन (संस्करण अंतर के कारण) को आपके प्रोजेक्ट में शामिल नहीं किया जाएगा। –

+0

@BradChristie मैंने ढांचे को पुनर्स्थापित करने का प्रयास किया, लेकिन यह कहता है कि "माइक्रोसॉफ़्ट नेट फ्रेमवर्क 4 इस ऑपरेटिंग सिस्टम का हिस्सा है ..." (आदि)। अन्य परियोजनाएं उनके संदर्भों को सही ढंग से लोड कर सकती हैं, वे समान ढांचे का उपयोग करती हैं। – nvi9

+0

फ्रेमवर्क, या एसडीके ढांचे? –

उत्तर

9

मैं भी इस समस्या थी और मुझे कुछ ले लिया इसे समझने का समय। समस्या यह है कि NuGet बदल गया कि संकुल कैसे बहाल किए जाते हैं। "पुराना तरीका"

 <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> 
    <PropertyGroup> 
     <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 
    </PropertyGroup> 
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" /> 
    </Target> 

की तरह 3 फ़ाइलें (nuget.config, nuget.exe, nuget.targets) और कुछ सेटिंग्स परियोजना फ़ाइल में साथ ".nuget" फ़ोल्डर जरूरत इस वजह से परियोजना तोड़ा जा ।

इस को ठीक करने या परियोजना के लिए लापता निर्देशिका कॉपी (साथ इसे पाने और पर पुराने संस्करण/nuget बनाम या एक सह कार्यकर्ता जो इसे से) करने के लिए या सिर्फ सरल परियोजना फ़ाइल से ऊपर उल्लिखित भाग को हटा दें।

सबसे अच्छा परिणाम के लिए भी परियोजना फ़ाइल से

<RestorePackages>true</RestorePackages> 

और

<Import Project="$(SolutionDir)\.nuget\nuget.targets" /> 

को दूर!

विषय यहाँ पर अधिक जानकारी प्राप्त: http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html और http://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore

+0

मैं पुष्टि कर सकता हूं कि यह सही दृष्टिकोण है - यह मानते हुए कि लक्ष्य ढांचा आपकी समस्या नहीं थी। – sapbucket

+0

वाह, माइक्रोसॉफ्ट के हाथों में क्या गड़बड़ है। जाहिर है, वीएस2017 में, यह अभी भी एक मुद्दा है। मैंने इसके साथ 2 घंटे तक संघर्ष किया। जब मैंने आखिरकार इस पोस्ट को पढ़ा और किसी अन्य प्रोजेक्ट से .nuget फ़ोल्डर को सॉल्यूशन फ़ोल्डर में कॉपी किया, तो सबकुछ आखिरकार काम करता था। धन्यवाद!! – user1524080

1

मुख्य समस्या FRAMEWORK संदर्भ है।

वी.एस. में अपनी परियोजना लोड और अपने प्रोजेक्ट गुण पृष्ठ (लक्ष्य फ्रेमवर्क) बदल, .NET 4.x (ग्राहक) या के उन्नयन .NET 4.5

+0

मैंने कोशिश की, कुछ भी बेहतर नहीं ... वैसे भी अन्य परियोजनाओं में नेट के उस संस्करण के साथ कोई समस्या नहीं है। – nvi9

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