2011-06-01 26 views
5

में सी # प्रोजेक्ट का अप्रत्याशित धीमी निर्माण मैं दो परियोजनाओं के साथ एक सुंदर सरल सी # समाधान पर काम कर रहा हूं: एक पुस्तकालय पुस्तकालय और पुस्तकालय के लिए एक इंस्टॉलर। कक्षा पुस्तकालय का निर्माण करना लगभग एक सेकंड लगता है। इंस्टॉलर का निर्माण, हालांकि, एक अप्रत्याशित/अविश्वसनीय रूप से लंबा समय लगता है। अधिक दिलचस्प बात यह है कि सीपीयू संकलन के दौरान "ब्रेक लेना" प्रतीत होता है, 5 से 10 सेकंड के लिए एक सिंगल कोर को स्पाइकिंग करता है और फिर कई सेकंड के लिए करीब-0 पर मारता है।वीएस 2010

इंस्टॉलर प्रोजेक्ट बहुत आसान है। यह कक्षा पुस्तकालय (एक एकल डीएलएल, लगभग 2 एमबी) और कुछ रजिस्ट्री कुंजी से आउटपुट है।

कोई विचार क्या कारण हो सकता है ?!

+0

क्या आपके पास बिल्ड आउटपुट है? – Iain

+0

क्या आप बिल्ड प्रक्रिया से आउटपुट प्रदान कर सकते हैं? अधिक जानकारी w/o अनुमान लगाने के लिए मुश्किल है। –

+0

संबंधित हो सकता है: http://connect.microsoft.com/VisualStudio/feedback/details/635358/visual-studio-deployment-projects-are-slow-to-build-and-dont-take-advantage-of-multiple -cpus – keyboardP

उत्तर

0

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

0

हमें यह सही समस्या थी और पाया कि एमएसआई बिल्ड प्रक्रिया सी: \ दस्तावेज़ों और सेटिंग्स \ उपयोगकर्ता नाम \ स्थानीय सेटिंग्स \ Temp फ़ोल्डर में बनाम * .tmp फ़ाइलों को बनाता है जो साफ़ नहीं होते हैं, और इस प्रकार समय के साथ निर्माण करते हैं । इन फ़ाइलों में से अधिक मौजूद है, एमएसआई निर्माण अब तक लेता है। हमने 24 घंटे पुरानी फ़ाइलों में से किसी भी को हटाने के लिए निर्धारित समय का उपयोग कर हमारी समस्या हल की है।

नोट - हमारी स्थिति के लिए सर्वर विंडोज सर्वर 2003 आर 2 था - इसलिए सी: \ दस्तावेज़ और सेटिंग्स उपसर्ग। यदि आप विंडोज विस्टा या विंडोज 7 का उपयोग कर रहे हैं, तो आपको संभवत: c: \ Users \ username के अंतर्गत vsi * .tmp के लिए खोज करके फ़ाइलें मिलेंगी।

0

यदि कोई भी Google पर इस प्रश्न पर ठोकर खाता है और अन्य समाधानों में से कोई भी आपकी समस्या का समाधान नहीं करता है और आप खुद को यूएसबी ड्राइव पर अपना काम पसंद करते हैं ... यूएसबी ड्राइव का उपयोग न करें। यद्यपि आप केवल तभी टीएफएस में एक वर्कस्पेस सेट करते हैं और उसके बाद यूएसबी को इसके लायक नहीं खींचते हैं। बस अपने स्थानीय ड्राइव पर एक और वर्कस्पेस बनाएं और आवश्यकता होने पर केवल यूएसबी का उपयोग करें।