2013-02-21 9 views
54

ठीक है। वास्तव में त्वरित सवाल, मैं शायद मोटी हो रहा हूँ।वीजी2012 में परियोजना संदर्भों के रूप में NuGet पैकेज जोड़ने का सबसे अच्छा तरीका?

यदि आप किसी प्रोजेक्ट 'संदर्भ' फ़ोल्डर पर राइट-क्लिक करते हैं तो 'NuGet पैकेज प्रबंधित करें' तो आप पैकेज इंस्टॉल कर सकते हैं और आपके द्वारा क्लिक की गई प्रोजेक्ट द्वारा उन्हें स्वचालित रूप से संदर्भित किया जाता है। लेकिन फिर मैं एक ही समाधान में अन्य परियोजनाओं के लिए एक ही संदर्भ जोड़ना चाहता हूं। यदि आप पिछले दोहराते हैं लेकिन किसी अन्य प्रोजेक्ट पर क्लिक करते हैं तो पैकेज का अनइंस्टॉल करना एकमात्र विकल्प है (चूंकि यह पहले से इंस्टॉल हो चुका है), एक मौजूदा संदर्भ (पहले से स्थापित) NuGet पैकेज को एक परियोजना संदर्भ के रूप में जोड़ने का सही तरीका क्या है? क्या मैं सामान्य संवाद का उपयोग कर संदर्भ जोड़ सकता हूं और संकुल फ़ोल्डर में डीएल को 'ब्राउज़' कर सकता हूं? बाद के संदर्भों के लिए पहला संदर्भ जोड़ने के लिए एक विधि का उपयोग करें? यह सही प्रतीत नहीं होता है।

उत्तर

80

आप द्वारा Manage NuGet packages for Solution... उपयोग कर सकते हैं:

  • राइट-क्लिक करके समाधान
  • Tools > Library Package Manager > Manage NuGet packages for Solution

फिर आप चुन सकते हैं जिसमें परियोजनाओं नीचे स्क्रीनशॉट पर के रूप में पैकेज स्थापित पर: enter image description here इसके अतिरिक्त आप उसी Manage NuGet packages for Solution... का उपयोग कर समाधान में अन्य परियोजनाओं में स्थापित पैकेज जोड़ सकते हैं। enter image description here

+0

तो सिस्टम से संकुल को स्थापित/निकालने के लिए आप प्रोजेक्ट लेवल कॉन्टेक्स्ट मेनू का उपयोग करते हैं, और एक प्रोजेक्ट से संदर्भ जोड़ने/निकालने के लिए आप समाधान स्तर संदर्भ मेनू का उपयोग करते हैं। सही। आपके उत्तर के लिए धन्यवाद। किसी भी विचार को 'परियोजनाओं का चयन करें' संवाद में किसी प्रोजेक्ट की जांच करने का कारण क्या है, मेरे पास एक प्रोजेक्ट है जो चेक किया गया है लेकिन पैकेज का संदर्भ नहीं है और जब मैं इसे अन-चेक करता हूं, तो यह वापस आता है। –

+0

समझ गया: packages.config। –

17

अन्य उत्तर यहां मेरी मदद नहीं करता था। यहां मैंने जो किया है, मैं इसे करने का कोई और तरीका नहीं जानता। मैं वीएस 2013 का उपयोग कर रहा हूं।

  • मैंने पैकेज प्रबंधक कंसोल में पैकेज स्थापित किया है, उदा। PM> Install-Package Newtonsoft.Json
  • समाधान Explorer में, सही संदर्भ क्लिक करें, संदर्भ
  • जोड़े
  • ब्राउज़ करें क्लिक करें, और समाधान के फ़ोल्डर के अंतर्गत संकुल निर्देशिका में dll पर जाएँ।

यह परियोजना के संदर्भ के लिए एक सापेक्ष पथ जोड़ता है, इसलिए इसे अन्य लोगों के साथ स्रोत नियंत्रण से कोड को विभिन्न निर्देशिकाओं में प्राप्त करने के साथ काम करना चाहिए।

+1

इस दृष्टिकोण के साथ एक समस्या है: जब भविष्य में आप इस पैकेज को अपडेट करना चाहते हैं, तो Nuget स्वचालित रूप से आपके प्रोजेक्ट में इसे संभाल नहीं पाएगा। नतीजतन आप एक ही पैकेज के विभिन्न संस्करणों के संदर्भ में विभिन्न परियोजनाओं के साथ समाप्त हो जाएगा। और यह रनटाइम में अपवादों का कारण बन जाएगा।तो यह अधिमानतः Nuget पैकेज प्रबंधक के माध्यम से संदर्भ जोड़ने के लिए है और मैन्युअल रूप से नहीं। – steavy

1

मुझे एक ही समस्या थी। क्रिस्टियन द्वारा पोस्ट किया गया समाधान अपेक्षित रूप से काम करता है, हालांकि, बहुत सारे पैकेजों से निपटने पर यह थोड़ा बोझिल हो सकता है। समाधान, वह मेरे लिए काम किया बस नोटपैड में myProjectName.csproj फ़ाइल को संपादित करने के लिए था, और सिर्फ इसलिए की तरह एक अन्य परियोजना से कॉपी-पेस्ट करने के लिए संदर्भ:

... 

<ItemGroup> 
    <Reference Include="Microsoft.AspNet.SignalR.Core"> 
     <HintPath>..\packages\Microsoft.AspNet.SignalR.Core.2.1.2\lib\net45\Microsoft.AspNet.SignalR.Core.dll</HintPath> 
    </Reference> 
    <Reference Include="Microsoft.AspNet.SignalR.SystemWeb"> 
     <HintPath>..\packages\Microsoft.AspNet.SignalR.SystemWeb.2.1.2\lib\net45\Microsoft.AspNet.SignalR.SystemWeb.dll</HintPath> 
    </Reference> 

    ... 

आशा इस कोई मदद करता है। यह मुझे बहुत क्लिक कर रहा है :)

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