2012-04-26 15 views
7

मेरे पास एक पैकेज है (कहें, MyStuff.Data) जिसके लिए EntityFramework (और अन्य) को काम करने की आवश्यकता है, लेकिन केवल आंतरिक रूप से। मैं एंटिटीफ्रेमवर्क (और उन सभी अन्य) को संदर्भित करने के लिए MyStuff.Data का उपयोग करने वाली प्रत्येक प्रोजेक्ट नहीं चाहता हूं, लेकिन डीएलएल को हमेशा वहां रहने की आवश्यकता है।Nuget: संदर्भों के बिना निर्भरता निर्दिष्ट करें

क्या कोई तरीका है कि मैं MyStuff.Data की निर्भरता के रूप में EntityFramework को जोड़ सकता हूं (ताकि यह संकुल फ़ोल्डर में EntityFramework.dll को उठाए), लेकिन प्रत्येक प्रोजेक्ट में संदर्भ के बिना किसी संदर्भ के जोड़ा जा रहा है?

उत्तर

3

कोई नहीं है। एक विकल्प EntityFramework dll को एम्बेड करने और इसे अपने पैकेज के अंदर शिप करने के लिए हो सकता है, और स्पष्ट रूप से बताता है कि स्थापना के दौरान लक्ष्य प्रोजेक्ट में कौन से संदर्भ जोड़े जाना चाहिए। आप इसे पैकेज के nuspec में मेटाडेटा तत्व का उपयोग करके निर्दिष्ट कर सकते हैं। http://docs.nuget.org/docs/reference/nuspec-reference#Specifying_Explicit_Assembly_References

सूचना है कि एक निर्भरता के विशेष संस्करण को एम्बेड अपने सभी उपभोक्ताओं पर एक सीमित बाधा है, जिसका अर्थ है कि आप एक पैकेज निर्माता के रूप में, ड्राइविंग जिनमें से संस्करण होगा: अधिक जानकारी डॉक्स यहां पाया जा सकता है यदि आपके उपभोक्ता इसका उपयोग कर सकते हैं और उपयोग करेंगे ...

अधिमानतः, आप किसी भी गैर-नियंत्रित (ईएफ) निर्भरता को अमूर्त करने की कोशिश करते हैं और वास्तविक कार्यान्वयन विकल्प उपभोक्ता को छोड़ देते हैं (या आप कार्यान्वयन युक्त एक अलग पैकेज प्रदान करते हैं, इसलिए आपके उपभोक्ता अभी भी ऑप्ट-इन कर सकते हैं और आपका उपयोग कर सकते हैं)।

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