2010-10-08 9 views
5

है हम अक्सर आम मुख्य लाइब्रेरीज कि हमारे विकास से कुछ के लिए हम dll संदर्भ के रूप में उनमें से सोचना चाहते है और इस तरह सिर्फ DLLs संदर्भ और शामिल नहीं का एक सेट है परियोजना फाइलवहाँ एक परियोजना के बीच स्विच करने का आसान तरीका है और यह dll

अन्य बार हम एक अंतरंग डिबगिंग सत्र के लिए सभी परियोजनाओं की जरूरत है। मैं सिर्फ Uber.sln और Core.sln नहीं कर सकता क्योंकि संदर्भ परियोजना फ़ाइलों में हैं। मेरे पास विभिन्न परियोजनाओं पर कई सालों से यह सवाल है लेकिन 50 परियोजनाओं के साथ Uber.sln रखने के अलावा कोई समाधान नहीं है।

कोई विचार/संकेत/दिशानिर्देश स्वागत है!

उत्तर

2

जब तक DLLs डीबग के साथ निर्माण कर रहे हैं के रूप में और आप PDBs है, तो आप न यह एक के रूप में शामिल करने की जरूरत है "परियोजना संदर्भ।"

यह स्रोत कोड के लिए संकेत देगा, या तुम सिर्फ समाधान में स्रोत कोड खोलने के लिए और एक ब्रेकपाइंट सेट कर सकते हैं।

How to show source code in debug when using .lib and dll

+0

+1, yup। यह शायद ही कभी .pdb फ़ाइल को खोजने में कोई समस्या है, जब तक यह मूल निर्माण फ़ोल्डर में अभी भी स्थित है। –

2

साझा अपने स्वयं के परियोजना या परियोजनाओं में DLLs का विकास करना। उन्हें संकलित करें और उन्हें अपनी परियोजनाओं में एक lib फ़ोल्डर में जोड़ें जो उन्हें संदर्भित करता है।
इस तरह एक देव वृक्ष बनाएं:

/lib 
shareddlls go here 
/src 
solution.sln 
/projectfolder 
    project.proj 
/tools 
testing frameworks 

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

अपने स्वयं के परियोजना में अपनी साझा DLLs परीक्षण करने के लिए एक परीक्षण ढांचे का प्रयोग करें। -----

+0

ऐसे समय होते हैं जब आप साझा डीएलएस और एप्लिकेशन डीएलएस को पार करने वाली सुविधाओं को विकसित करना चाहते हैं। उस समय एक बड़ा समाधान लाभांश का भुगतान करता है। यह सिर्फ काम करने का एक तरीका प्रतीत होता है जो एमएस द्वारा समर्थित नहीं है। – Squirrel

+0

@ स्क्वायरल मेरे लिए यह एक खराब डिजाइन है। प्रत्येक वर्ग एक चीज़ के लिए ज़िम्मेदार होना चाहिए और इसी तरह की परियोजनाओं (डीएलएस) को समान कार्यक्षमता को समूहित करना चाहिए। निर्भरताओं को हटाने का प्रयास करें। – skyfoot

+0

मुझे इसे दोबारा दोहराएं, अक्सर आपको एक डिबगिंग सत्र की आवश्यकता होती है जहां आपको अपने सर्वर के शीर्ष स्तर से 'घटक' डीएलएस में अनुरोध का पालन करना होगा। आपको पता है कि घटक में कोई समस्या है जिसे फिक्सिंग की आवश्यकता है, लेकिन जब घटक एक डीएल है तो आपको घटक समाधान को आग लगाना होगा, घटक को पुनर्निर्माण करना होगा और फिर उन निर्मित डीएलएस को ले लें और डीएलएस अपडेट करें जो एप्लिकेशन समाधान/प्रोजेक्ट है संकेत करना। सब कुछ एक फफ है, इसलिए हमारे पास एक बड़ा समाधान है। न तो विकल्प आदर्श है - क्या यह परिदृश्य परिचित लगता है या यह सिर्फ मुझे है? – Squirrel

1

मुझे लगता है कि मैं निकटतम उत्तर के साथ आया हूं जिसमें समाधान में सभी परियोजनाएं शामिल हैं और एक डीएलएल परियोजना भी है जो संकलित होने पर आउटपुट डीआईआर को प्रोड/डिब्बाबंद डीएलएस भेजती है।

फिर अलग विन्यास का उपयोग करके मैं परियोजनाओं सिर्फ dll परियोजना निर्माण किया जा रहा के साथ रिलीज विन्यास के लिए बनाया जा रहा साथ डीबग विन्यास के बीच स्विच कर सकते हैं।

इसे जाने और रिपोर्ट करने के लिए ....

+0

हाय गिलहरी, यह कैसे काम करता है? मुझे आपके जैसा ही समस्या है। धन्यवाद। – toddmo

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

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