मैं एक समाधान में दूसरी परियोजना में एक NuGet पैकेज कैसे स्थापित करूं?


195

मैं वर्तमान में एक समाधान पर काम कर रहा हूं जिसमें शुरू में एक परियोजना शामिल थी ( My.First.Project.Name)। मैंने निष्पादन के द्वारा कैसल विंडसर स्थापित किया है:

Install-Package Castle.Windsor

मैंने अभी एक और प्रोजेक्ट ( My.Second.Project.Name) समाधान में जोड़ा है और इस परियोजना में कैसल विंडसर भी स्थापित करना चाहता हूं, लेकिन जब मैं Install-Package Castle.Windsorफिर से दौड़ता हूं, तो मुझे त्रुटि मिलती है:

'Castle.Core 2.5.2' पहले से स्थापित
'Castle.Windsor 2.5.2' पहले से ही
My.First.Project स्थापित कर चुका है। पहले से ही 'Castle.Core 2.5.2'
MyFirst.Project.Name का एक संदर्भ पहले से ही एक है 'कैसल। विंडसर 2.5.2' का संदर्भ

तो मेरा सवाल यह है कि मैं नूगेट पैकेज मैनेजर को दूसरी परियोजना में पैकेज स्थापित करने के लिए कैसे राजी करूं ?

जवाबों:


323

3 दृष्टिकोण है :)।
नूगेट 1.1 (नवीनतम रिलीज़) में हमने पॉवरलाइनिंग को बेहतर बनाया है ताकि आप ऐसा कर सकें:

Get-Project -All | Install-Package SomePackage

जो आपके सभी प्रोजेक्ट्स में "SomePackage" स्थापित करेगा। आप वाइल्डकार्ड्स का उपयोग कर सकते हैं कि कौन सी परियोजनाएँ संकुचित करें:

Get-Project Mvc* | Install-Package SomePackage

यह वाइल्डकार्ड शब्दार्थ का उपयोग करेगा (इस मामले में, सभी प्रोजेक्ट ढूंढें जो एमवीसी से शुरू होता है)।

Get-Project SomeProject | Install-Package SomePackage

वह SomePackage को SomeProject में स्थापित करेगा और कुछ नहीं।


3
और 3 वीं Install-Package SomePackageमंजूरी बस वर्तमान परियोजना पर इसे स्थापित करने के लिए बुला रही है।
जलाल

1
लेकिन "वर्तमान" परियोजना क्या है?
Zbigniew Wiadro

10
ड्रॉपडाउन में चयनित एक
davidfowl

@jalal जो काम नहीं करता है, बस इसे VS2015 में आजमाया। पैकेज हमेशा पहली परियोजना के लिए स्थापित होता है, वर्तमान में नहीं।
इटरन 21

6
@ Eternal21 आप पैकेज मैनेजर कंसोल विंडो में प्रोजेक्ट ड्रॉप-डाउन से वर्तमान प्रोजेक्ट का चयन कर सकते हैं।
जलाल

141

दो दृष्टिकोण हैं।

जैसा कि आप पहले से ही जानते हैं, पैकेज मैनेजर कंसोल में एक ड्रॉप डाउन है जो आपके समाधान में परियोजनाओं को सूचीबद्ध करता है।

अन्य दृष्टिकोण -प्रयोग ध्वज का उपयोग करना है। इसके बारे में अच्छी बात यह है कि यह आपको प्रोजेक्ट के नाम के साथ Intellisense देता है! उदाहरण के लिए:

Install-Package SomePackage -Project MvcApplication2

82

जवाब है, शर्मनाक, आँख बंद करके सरल।

"पैकेज मैनेजर कंसोल" के टूलबार में "डिफॉल्ट प्रोजेक्ट" शीर्षक वाला एक ड्रॉप-डाउन है, जिससे वहां की परियोजना को बदलकर पैकेज को दूसरी परियोजना में स्थापित करने की My.Second.Project.Nameअनुमति मिलती Install-Package Castle.Windsorहै।


2
आप adverb का उपयोग अविश्वसनीय, निर्विवाद रूप से, रमणीय है
l --''''''--------- '' '' '' '' '' '

15

दृश्य स्टूडियो 2015 में (Nuget v3.1.2 के रूप में) सिंटैक्स अब है:

Install-Package ThePackage -ProjectName YourProjectName

नोट: -प्रोजेक्ट नाम बनाम -प्रोजेक्ट


8

विजुअल स्टूडियो में, आप जा सकते हैं Tools -> NuGet Package Manager -> Manage NuGet Packages for the entire Solution। वहां से, उन Nuget पैकेज का चयन करें जिन्हें आप परियोजनाओं के बीच साझा करना चाहते हैं और क्लिक करें Manage। यह आपको एक विशिष्ट स्थापित NuGet पैकेज को जोड़ने की अनुमति देगा, जो भी अन्य परियोजनाओं को आप चाहते हैं।


1
मुझे इस खिड़की के बारे में कभी नहीं पता था। सुपर शक्तिशाली, अच्छा!
विलेम

मैं एक घंटे बिता रहा हूँ इस कार्यशीलता को देखते हुए! इसके लिए आपका बहुत-बहुत धन्यवाद!
मार्को गुइगार्ड

6

यदि आपको मौजूदा परियोजना के पैकेजों को नए सिरे से कॉपी करने की जरूरत है, तो बस पैकेजों को कॉपी और / या संशोधित करें। नई परियोजना के लिए फाइल को कॉन्फ़िगर करें और चलाएं Update-Package -reinstall -Project YourProjectName


0

पुनर्स्थापना के लिए बाध्य करने का विकल्प भी है। कुछ समस्याओं के साथ, इससे मुझे मदद मिली।

Update-Package Microsoft.Owin -Reinstall
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.