2015-03-04 6 views
9

बनाने से पहले लंबे विलंब में 50 परियोजनाओं के साथ मेरा समाधान है, और प्रत्येक प्रोजेक्ट में कम से कम 100 फाइलें हैं (जो मुझे लगता है कि प्रासंगिक है)।विजुअल स्टूडियो

समस्या तब होती है जब मैं समाधान बनाता हूं, या एक एकल प्रोजेक्ट, "बिल्ड आउटपुट" विंडो को लिखे जाने से पहले 5 से 10 सेकंड की देरी हो रही है। "बिल्ड आउटपुट" शब्दकोष को "डायग्नोस्टिक" में सेट करना कोई संकेत नहीं देता है कि देरी का कारण क्या है। यह देरी तब भी होती है जब कोई भी फाइल नहीं बदली जाती है (पहले बनाया गया था)।

=== Build: 0 succeeded, 0 failed, 10 up-to-date, 0 skipped ========== 

जब परिवर्तन होते हैं, आउटपुट बिल्ड में, यह कहना है निर्माण पूरा करने के लिए लगभग ले लिया 2 सेकंड, हालांकि अंत से अंत मोटे तौर पर 7 से 12 सेकंड लेता है।

बिल्ड उत्पादन:

1>(omitted) 
1>Time Elapsed 00:00:01.99 
========== Build: 1 succeeded, 0 failed, 9 up-to-date, 0 skipped ========== 

MSBuild:

Build succeeded. 
    0 Warning(s) 
    0 Error(s) 

Time Elapsed 00:00:02.17 

C:\Projects\SharedKernel.Tests> 

कमांड लाइन के माध्यम से चल रहा है MSBuild ऐसी कोई देरी है, 2.17 सेकंड समय था जब पूरा होने के लिए कीबोर्ड पर दबाव है।

मैं जो कह सकता हूं उससे, एमएसबिल्ड कार्य स्वयं विजुअल स्टूडियो में तुरंत निष्पादित होते हैं, लेकिन ऐसा लगता है कि दृश्य स्टूडियो दृश्यों के पीछे कुछ कर रहा है इससे पहले कि एमएसबिल्ड कार्य शुरू हो जाए जो इस देरी का कारण बन रहा है।

जब मैं दृश्य स्टूडियो (devenv.exe) हालांकि Process Monitor मैं इस परियोजना में हर फ़ाइल और फ़ोल्डर और परियोजना की निर्भरता के लिए CreateFile, QueryDirectory, और CloseFile के लिए कॉल नोटिस का निरीक्षण किया। यह समयरेखा को देखते समय देरी से संबंधित लगता है।

जब मैं वास्तव में होता है तो दृश्य स्टूडियो (प्रोजेक्ट> बिल्ड पर राइट क्लिक) के भीतर से बिल्ड प्रक्रिया बनाने शुरू होने से देरी को कैसे कम कर सकता हूं?

मैं समाधान के लिए निम्नलिखित जवाब को देखा, लेकिन वे या तो देरी को कम नहीं करते या बस लागू नहीं कर रहे हैं:

+0

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

+0

मुझे "बिल्ड" करने में काफी देरी है, भले ही कोई फाइल नहीं बदली हो। "समाधान" पर "बिल्ड" करते समय देरी अधिक होती है। मेरा विशेष उदाहरण एक यूनिट-टेस्ट "प्रोजेक्ट" पर "बिल्ड" करते समय होता है। – Matthew

+0

भले ही कुछ भी नहीं बदला है, फिर भी यह परिवर्तन के लिए समाधान या परियोजना को देखेगा। – CalebB

उत्तर

0

मुझे लगता है कि आपकी समस्या यह है कि "मेरे पास 50 परियोजनाओं का समाधान है"। मेरे अनुभव में इसका विकास के लिए उपयोग नहीं किया जाना चाहिए। इसका उपयोग केवल बिल्ड सर्वर के लिए किया जाना चाहिए। तो मैं क्या करूँगा, कई समाधान फाइलें करें। निर्माण सर्वर के लिए सभी परियोजनाओं के साथ एक बड़ा, और विकास के लिए केवल कुछ परियोजनाओं के साथ कई। इस कई समाधानों के पैकेजिंग को अक्सर एक साथ बदलते हुए निर्देशित किया जाना चाहिए। अगर जवाब सब कुछ है तो मैं परियोजना संरचना पर सवाल उठाऊंगा।

क्योंकि मैं वास्तव में आपके प्रश्न का उत्तर नहीं देता कि एमएसबिल्ड की तुलना में वास्तव में क्या बनाम करता है, मैं सामान्य रूप से इसे एक टिप्पणी के रूप में लिखूंगा। लेकिन मेरी प्रतिष्ठा अभी पर्याप्त नहीं है (उस पर काम कर रही है) लेकिन क्योंकि किसी और ने इसकी सिफारिश नहीं की, मैंने सोचा कि यह संभवतः एक उत्तर के लायक होगा। या यह इतना स्पष्ट है कि किसी ने इसे इंगित नहीं किया? तो कृपया मुझे माफ़ कर दो।

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