2010-04-19 16 views
28

मैंने एक कक्षा लिखी है जो मेरे आवेदन में आंतरिक लॉगिंग को संभालेगी। अब मैं इस वर्ग का उपयोग एक और नई और पूरी तरह से अलग परियोजना में करना चाहता हूं।कई परियोजनाओं के बीच सी # कक्षा स्रोत कोड साझा करें

मैं बस फ़ाइल को नए प्रोजेक्ट फ़ोल्डर में कॉपी कर सकता हूं, लेकिन मैं इसे बनाए रखने के लिए केवल एक प्रतिलिपि रखना चाहता हूं ताकि इसमें सभी बदलाव समय के साथ दोनों परियोजनाओं पर लागू हो जाएंगे।

मैं "जोड़ने के मौजूदा फ़ाइल" का उपयोग कर सकते हैं, लेकिन इतना है कि अगले डेवलपर जानता है कि यह आवश्यक है मैं फ़ाइल डाल जहां से करते हैं। मेरे पास एक बार "साझा" फ़ोल्डर था, लेकिन एक बार फ़ोल्डर को अगले विकास कंप्यूटर में नहीं लाया गया था।

इस व्यवस्थित करने के लिए इतना है कि यह नई देखरेख के लिए सर्वाधिक महत्व रखता है और परियोजनाओं में टूटी कड़ियों के लिए जोखिम को कम करता सबसे अच्छा तरीका क्या है।

+1

क्या आप वास्तव में मुझे यह बताना चाहते हैं कि सी # में स्रोत-स्तरीय साझाकरण संभव नहीं है? –

+0

@ पावेल: यह समस्या वास्तव में सी # विशिष्ट नहीं है हालांकि मैं यहां एक सी # विशिष्ट समाधान की तलाश में था। मुझे पहले से ही उन परिस्थितियों का सामना करना पड़ा है जहां एक परियोजना में एकल फाइलें गायब थीं क्योंकि वे अन्य फ़ाइलों में स्थित थीं जो बाकी फ़ाइलों के साथ नहीं भेजी गई थीं। – hultqvist

+0

जो आप खोज रहे हैं उसका सटीक उत्तर नीचे जॉर्गेन के पोस्ट में देखा जा सकता है। – user912447

उत्तर

25

आप इस वर्ग के इस तरह से तुम सब करने की है कि इस परियोजना के लिए एक संदर्भ जोड़ने के लिए है कि एक पुस्तकालय परियोजना बना सकते हैं।

है कि आप इस्तेमाल कर सकते हैं "राइट क्लिक करें -> मौजूदा आइटम जोड़ने -> लिंक के रूप में" कोई विकल्प नहीं है इस तरह से आप केवल कोड की एक प्रति है, लेकिन यह कई परियोजनाओं में मौजूद कर सकते हैं।

+0

क्या आप इसे यहां देख सकते हैं http://stackoverflow.com/questions/21301360/share-properties-from-child-app-to-base-project – Goofy

5

अपने लॉगिंग कोड को एक अलग असेंबली में तोड़ दें।

तब आप उन परियोजनाओं में उस असेंबली को शामिल कर सकते हैं जो उस लॉगर का उपयोग करना चाहिए।

यह सब कुछ रहता है अच्छे और साफ हैं और आप केवल बल्कि प्रत्येक प्रतिलिपि बारे में चिंता करने की तुलना में कोड का एक सेट बनाए रखने के लिए होगा।

1

इस कक्षा को शामिल करने वाली एक नई असेंबली बनाएं।

तब आपकी सभी अन्य परियोजनाएं इस असेंबली को संदर्भित कर सकती हैं और कक्षा का उपयोग कर सकती हैं।

10

साझा करने के लिए एक कक्षा पुस्तकालय सबसे अच्छा समाधान है।

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

6

यदि आपको वास्तव में स्रोत कोड साझा करने की आवश्यकता है, उदाहरण के लिए यदि आपके पास एक साथ 32-बिट और 64-बिट एक ही असेंबली का निर्माण होता है (जिसे आप मूल कोड पर निर्भर करते हैं तो कुछ बार आवश्यक है), आप कर सकते हैं इस सवाल का जवाब इस सूत्र में दिए गए का उपयोग करें: How do you share code between projects/solutions in Visual Studio?

(' "लिंक" दो परियोजनाओं के बीच एक कोड फ़ाइल' के लिए देखो।)

1

, एक अद्वितीय नाम स्थान में वर्ग रखो तो सभी के लिए एक कड़ी के रूप फ़ाइल जोड़ने परियोजनाओं का उपयोग करने के लिए आपको जरूरी है। सुनिश्चित करें कि आप उस अद्वितीय नामस्थान के लिए एक उपयोग कथन रखें जहां आप कक्षा का उपयोग करेंगे, या आपको इसके हर उपयोग को पूरी तरह अर्हता प्राप्त करनी होगी। इस तरह की स्थितियों के लिए, मुझे लगता है कि यह एक आकस्मिकता से काफी बेहतर है, क्योंकि यह आपके स्वयं के कोड का हिस्सा है जो कि आप अपनी परियोजनाओं के बीच साझा करना चाहते हैं, के लिए अनावश्यक क्रॉस-assemply संदर्भ उत्पन्न नहीं करता है।

0

आप यह करने के लिए अपने संस्करण प्रणाली का उपयोग भी कर सकते हैं।

हम आम तौर पर समाधान और मुख्य परियोजना के साथ निर्देशिका बनाते हैं और फिर यह निर्देशिका एसवीएन को प्रतिबद्ध करते हैं। फिर सभी साझा पुस्तकालय svn: बाहरी का उपयोग करके जुड़े हुए हैं - इसलिए सभी परियोजनाएं एक ही समाधान निर्देशिका में मौजूद हैं।

कोई भी प्रतिबद्ध करने के बाद सभी बाहरी निर्भरताओं के साथ समाधान समाधान जांच सकते हैं।

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