2012-09-05 14 views
5

मुझे एक विजुअल स्टूडियो समाधान मिला है जिसमें लगभग 100 परियोजनाएं हैं। उनमें से अधिकतर एक निर्भरता पदानुक्रम बनाते हैं। अब अगर मैं एक परियोजना के लिए एकल .cs बदलता हूं और इसे बनाता हूं, तो सभी निर्भर परियोजनाएं भी बनाई जाती हैं - इस पर ध्यान दिए बिना कि वे बदल गए हैं या नहीं। क्या विज़ुअल स्टूडियो केवल बदली गई परियोजनाओं को बनाने का कोई तरीका है? मैं हर बार मिनट बर्बाद कर रहा हूं जब मैं पूरी तरह से पुनर्निर्माण करके थोड़ा बदलाव करता हूं। यह बड़ा समय जोड़ता है!विजुअल स्टूडियो बिल्ड समय घटाएं

+0

यह तार्किक है कि उसे निर्भर परियोजनाओं का पुनर्निर्माण करना है, क्योंकि उसे यह जांचना है कि आपने कुछ तोड़ नहीं लिया है या नहीं। मुझे नहीं पता कि आपके पास एसएसडी है, लेकिन मेरे लिए यह एसएसडी (काफी कम समय के निर्माण) में मदद करता है। – Styxxy

+0

मुझे यकीन है कि डीबगिंग में आपको जो समस्याएं आती हैं, वे अव्यवहारिक कर देंगे। – Stuporman

+1

एक समाधान में 100+ परियोजनाएं होने और लंबे समय तक निर्माण में परिवर्तन एक डिजाइन/संगठनात्मक समस्या है। आप किस बिंदु पर कार्ड के घर की नींव बदलना बंद कर देते हैं? निश्चित रूप से आपके पास कुछ ऐसे हैं जिनके लिए 1000 अंकों की कमी होनी चाहिए? इसके लिए कोई आसान इलाज नहीं है, कुछ भी नहीं जो प्रोग्रामर की क्यू + ए साइट पर फिट होगा। उपकरण को दोष नहीं दे सकता है, यह वही करता है जो आप इसे करने के लिए कहते हैं। अपने घृणा का अनुवाद अपने टीम के सदस्यों और आर्किटेक्ट्स को संदेशों में करें। हम इसके साथ मदद नहीं कर सकते हैं, हम इसके बारे में उतना ही नहीं जानते जितना आप हैं। –

उत्तर

4

नहीं, ऐसा करने का कोई अच्छा तरीका नहीं है। कुछ वृद्धिशील इमारत कभी-कभी होती है (विजुअल स्टूडियो 2010 या बाद में), लेकिन इसकी कोई गारंटी नहीं है।

असेंबली में परिपक्व होने वाली परियोजनाओं को संकलित करें, और उन्हें अपने अस्थिर (वर्तमान में विकास में) परियोजनाओं से संदर्भित करें। यदि आप उचित इकाई परीक्षण कर रहे हैं, तो यह एक बड़ा मुद्दा नहीं होना चाहिए। विभाजन और जीत; पहले निर्भरताओं को खत्म करें और उन्हें स्थिर रखें, फिर उन्हें असेंबली के लिए प्रतिबद्ध करें।

2

परियोजनाओं की संख्या कम करें।

प्रत्येक प्रोजेक्ट DLL उत्पन्न करता है - परिनियोजन की एक इकाई। This is normally not needed

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

इसके अलावा, परियोजना संदर्भों के बजाय, निर्मित डीएलएल का संदर्भ लें।


इस सुझाव क्यों काम करता है:

  • कम DLLs उत्पादित कर रहे हैं।
  • इन डीएलएल के कम संदर्भ हैं, इसलिए कम डीएलएल को प्रतिलिपि बनाने की आवश्यकता है।
  • कई अन्य परियोजनाओं द्वारा संदर्भित परियोजनाओं को प्रत्येक संदर्भ परियोजना के लिए पुन: संकलित किया जाता है। यदि किसी परियोजना संदर्भ के बजाय एक डीएलएल का उपयोग किया जाता है, तो एक पुनर्मूल्यांकन नहीं होगा।
+0

यह केवल धीमी गति से निर्माण करेगा, क्योंकि एक ही कोड को पुनर्निर्मित करना होगा। – ssube

+0

@peachykeen - इसे आज़माएं। आप हैरान हो जाएंगे। कम परियोजनाओं == कम डीएलएल। कम डीएलएल == कम प्रतिलिपि बनाने और कम recompilations। – Oded

+0

मेरे पास कम बड़ी परियोजनाओं और अधिक छोटी परियोजनाओं दोनों हैं। मैं नहीं था, यह मदद नहीं करता है जब समस्या पुनर्निर्मित करने की आवश्यकता कोड की मात्रा है। फ़ाइल प्रतियां इस तरह के मुद्दे के कारण काफी महंगा हैं, यह कैस्केडिंग रीकंपाइल है, जो बड़ी परियोजनाएं (हमेशा) बचती हैं। – ssube

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