2008-11-06 13 views
5

मुझे आश्चर्य है कि मेरी परियोजना के निर्माण के दौरान क्या शामिल करना है। मेरे पास एक पुस्तकालय है जिसे मुझे बनाने के लिए मेरे प्रोजेक्ट के संदर्भ में संदर्भित करने की आवश्यकता है, लेकिन उस लाइब्रेरी में 10 निर्भरताएं हैं। क्या मुझे उन निर्भरताओं को भी संदर्भित करना चाहिए या क्या मुझे पोस्ट बिल्ड इवेंट का उपयोग करके आउटपुट निर्देशिका में कॉपी करना चाहिए?निर्भरता और संदर्भ - मुझे वास्तव में क्या संदर्भ देना चाहिए?

सबसे अच्छा अभ्यास क्या है?

मुझे उन सभी निर्भरताओं को शामिल करने में भ्रमित लगता है क्योंकि परियोजना उनके बिना ठीक संकलित करती है - क्या उन्हें रनटाइम निर्भरता कहा जाता है? मेरे संदर्भ मेरे प्रोजेक्ट के लिए निर्भरता के साथ उलझन में आते हैं, भले ही वे कुछ लाइब्रेरी में उपयोग किए जाते हैं।

मैं विजुअल स्टूडियो का उपयोग कर रहा हूं।

क्या कोई मुझे इस अधिकार को कैसे करने में कुछ अंतर्दृष्टि दे सकता है।

धन्यवाद।

उत्तर

1

आपको केवल उन संदर्भों को जोड़ने की आवश्यकता है जो सीधे आपके प्रोजेक्ट द्वारा उपयोग की जाती हैं।

निजी असेंबली (जीएसी में नहीं) के लिए, विजुअल स्टूडियो डिफ़ॉल्ट रूप से संदर्भित असेंबली (और उनकी निर्भरताओं) को आपके प्रोजेक्ट की आउटपुट निर्देशिका में कॉपी करेगा।

जीएसी विजुअल स्टूडियो में असेंबली के लिए संदर्भित असेंबली को आपकी परियोजना की आउटपुट निर्देशिका में डिफ़ॉल्ट रूप से कॉपी नहीं करता है।

दोनों मामलों में आप "स्थानीय कॉपी करें" संदर्भ संपत्ति को बदलकर व्यवहार बदल सकते हैं।

आईएमएचओ, यह निर्माण पर्यावरण की निफ्टी विशेषता है। अप्रबंधित दुनिया में यह निर्भर करता है कि आप अपनी निर्भरताओं की निर्भरताओं का ट्रैक रखें (आमतौर पर पूर्व या पोस्ट बिल्ड घटनाओं के माध्यम से)।

2

यह सिर्फ राय है। किसी भी तरह से काम करेगा।

व्यक्तिगत रूप से मैं पोस्ट-बिल्ड बीएटी फाइलों से नफरत करता हूं, इसलिए मैं निर्भरता को आउटपुट निर्देशिका में कॉपी करने के लिए शामिल करता हूं।

एक अन्य विकल्प है कि आप अपनी परियोजना में एक लिंक डालें - जैसे संसाधन निर्देशिका में। इस सेट को BuildAction = none, और CopyToOutputDirectory = CopyIfNewer

1

मुझे लगता है कि आप विजुअल स्टूडियो में काम कर रहे हैं।

संक्षिप्त उत्तर केवल आपके प्रोजेक्ट को संकलित करने के लिए आवश्यक असेंबली शामिल करना है।

अधिक असेंबली का संदर्भ किसी भी समस्या का कारण नहीं बनना चाहिए, क्योंकि आपके आवेदन रन समय पर आवश्यक होने पर असेंबली लोड करेंगे, लेकिन संदर्भों की एक लंबी सूची होने से भ्रमित और गन्दा हो सकता है।

संदर्भों की आपकी सूची में यह बताना चाहिए कि आपका प्रोग्राम क्या करता है और इसका क्या उपयोग करता है।

+0

तो क्या आप उन पोस्ट पुस्तकालयों के लिए रनटाइम निर्भरताओं को प्रदान करने के लिए पोस्ट बिल्ड इवेंट्स या किसी अन्य तरीके का उपयोग करने की सलाह देते हैं, जिसका मैं संदर्भ दे रहा हूं? – Fadeproof

+0

ठीक है, यह वास्तव में स्वाद का मामला है। यदि आपकी असेंबली जीएसी में हैं तो आपको कुछ भी करने की ज़रूरत नहीं है, लेकिन मैं इस परियोजना को अव्यवस्थित नहीं करना चाहूंगा। –

+1

कोई भी जीएसी में नहीं है इसलिए उस मामले में मुझे पोस्ट-बिल्ड इवेंट का उपयोग करना चाहिए? – Fadeproof

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