2008-10-08 12 views
6

प्रत्येक बार थोड़ी देर में, आमतौर पर जब मैं हमारी यूआई असेंबली में डिबगिंग रोकता हूं, तो मुझे मिलता है त्रुटि जो विजुअल स्टूडियो 2008 की पुन: प्रारंभ करने की आवश्यकता है निम्नलिखित है और यह मेरी उत्पादकता की मौत हो गई है:वीएस 2k8 डिबगिंग स्टॉप के बाद फ़ाइल हैंडल जारी नहीं करता है: आउटपुट निर्देशिका में फ़ाइल एक्स की प्रतिलिपि बनाने में असमर्थ क्योंकि यह किसी अन्य प्रक्रिया द्वारा उपयोग किया जा रहा है

Error 1 Metadata file [utility function assembly in RELEASE folder] could not be found.

मैं इस सच में, सच अजीब है क्योंकि हम का उपयोग कभी नहीं लगता है: पुनरारंभ करने के बाद

Error 13 Unable to copy file [UI assembly] to [output directory]. The process cannot access the file [output directory][UI assembly] because it is being used by another process.

, मैं इस त्रुटि मिलती है रिलीज विन्यास।

मैं विंडोज विस्टा पर वीएस 2 के 8 एसपी 1 का उपयोग कर रहा हूं।

मुझे पता है कि यह वीएस डीबगर है जो हैंडल उपयोगिता (पहले से Sysinternals से) का उपयोग करके अपनी फ़ाइल हैंडल जारी नहीं कर रहा है। प्रक्रिया devenv.exe है।

मैंने समाधान को बंद करने और फिर से खोलने का प्रयास किया है। काम नहीं किया केवल एक पूर्ण VS2k8 काम शुरू करता है।

मैंने here वर्णित फ़ाइल को स्थानांतरित करने के लिए प्री-बिल्ड इवेंट जोड़ने का प्रयास किया है, लेकिन यह काम नहीं करता है क्योंकि विंडोज फ़ाइल को उसी कारण से नहीं हटा सकता है क्योंकि यह इसे प्रतिस्थापित नहीं कर सकता है: यह मिल गया है एक खुला संभाल

मैंने ऊपर वर्णित हैंडल.एक्सई उपयोग का उपयोग करके मैन्युअल रूप से हैंडल को बंद करने का प्रयास किया, फिर प्री-बिल्ड इवेंट की कोशिश की। विजुअल स्टूडियो स्पष्ट रूप से नहीं जानता है कि इसका हैंडल बंद कर दिया गया है क्योंकि वीएस बिल्ड विफल रहता है, लेकिन handle.exe फ़ाइल में कोई खुली फ़ाइल हैंडल नहीं दिखाता है।

  • ReSharper 4
  • स्मार्ट Paster 2008
  • Typemock अलगाने
  • TestDriven.NET 2.13.2184
:

रिकॉर्ड के लिए, यहाँ ऐड-इन्स मैं चलाते हैं

मैं इस परियोजना के लिए डेवलपर एक्सप्रेस नियंत्रण का भी उपयोग करता हूं, ताकि इसके साथ कुछ करने के लिए भी हो।

+0

यहां अधिक प्रासंगिक उत्तर: http://stackoverflow.com/questions/11646047/error-cannot-access-file-bin-debug-because-it-is-being-used-by-another-proc –

+0

@ जोनस्चनेडर मैंने डुप्लिकेट के रूप में बंद करने के लिए वोट दिया, और आपको भी नि: शुल्क महसूस करना चाहिए। मुझे नहीं लगता कि मेरा प्रश्न आपके द्वारा पहचाने गए डुप्लिकेट पर अधिक मूल्य जोड़ता है। –

+0

आम तौर पर इस स्थिति में मैं उस प्रश्न की पहचान करता हूं जिसे * 4 साल बाद * एक डुप्लिकेट के रूप में पूछा गया था, लेकिन चूंकि उस दूसरे प्रश्न पर अधिक ध्यान दिया गया है, और आपके आशीर्वाद के साथ, मैं आगे बढ़ूंगा । धन्यवाद! –

उत्तर

2

मुझे वीएस2005 और वीएस -2008 में किसी भी ऐड-इन्स इंस्टॉल या परियोजना में किसी तीसरे पक्ष के नियंत्रण के बिना समान समस्याएं आई हैं। मुझे मिला एकमात्र समाधान विजुअल स्टूडियो को बंद करना और इसे फिर से खोलना है। यह एक बहुत ही अड़चन समस्या है और परेशान होने पर, ऐसा लगता है कि आपके अंत में हल नहीं किया जा सकता है।

0

Unlocker उपकरण है जो आपको कुछ परेशानी में मदद कर सकता है।

0

हमारी परियोजनाओं के निर्माण के दौरान हमें वीएस2002 के साथ एक ही समस्या थी। हमने इसे एक सामान्य बिल्ड फ़ोल्डर (यानी {SolutionRoot} \ Build) में हमारे एप्लिकेशन को बनाकर VS2005 तक स्थानांतरित किया जब हमने इसे ठीक किया।

+0

इसके द्वारा, क्या आपका मतलब यह है कि आपके सभी शीर्ष स्तर की असेंबली और आपकी सभी निर्भर असेंबली एक ही फ़ोल्डर में बनती हैं? –

0

मैंने नोटिस करना शुरू कर दिया है कि ऐसा होने की संभावना अधिक होती है (और हो सकता है केवल) जब विधि के दौरान कहा जाता है। Idle।

1

आप इस पूर्व निर्माण घटना स्क्रिप्ट की कोशिश कर सकते हैं: अगर मौजूद

"$ (TargetPath) .locked" डेल "$ (TargetPath) .locked" यदि मौजूद नहीं "$ (TargetPath) .locked" चाल "$ (टार्गेटपाथ)" "$ (लक्ष्यपैथ)।बंद "

कुछ लोगों ने सूचित किया है कि यह समस्या ठीक हो जाती

अद्यतन:।

किसी भी संयोग से आप क्या अपने .config में इस है (या machine.config?):

<hostingEnvironment shadowCopyBinAssemblies="false"/> 

ऐसा लगता है कि बिल्ड निर्माण के दौरान मूल "प्रतिलिपि बनाने में असमर्थ" मूल (या शायद केवल तेज हो जाएगा)। निश्चित रूप से, मैंने केवल अपनी परियोजना में यह सेटिंग जोड़ दी क्योंकि मुझे एएसपी.NET के बारे में डीबग करने में त्रुटि हो रही थी ऊना छाया/डीएलएल की प्रतिलिपि बनाने के लिए खून। हालांकि, पिछली दृष्टि में, लॉकिंग समस्या से निपटने के लिए यह मुद्दा काफी आसान है। छाया/प्रतिलिपि के मुद्दे के साथ, आपको बस निर्माण करने की आवश्यकता है और फिर कुछ सेकंड प्रतीक्षा करें। यह थोड़ा परेशान है, लेकिन जब भी आप बिल्ड करना चाहते हैं तो विजुअल स्टूडियो को पुनरारंभ करने की तुलना में निश्चित रूप से समस्या से कम समस्या!

+0

हाँ, मैंने इसका कोई फायदा नहीं उठाया है। –

+0

ये खिड़कियां असेंबली बनाते हैं। –

0

किसी कारण से, डिफ़ॉल्ट नामस्थान से मेल खाने के लिए असेंबली के आउटपुट नाम को बदलकर यह तय किया जा सकता है।

मुझे यह कामकाज https://connect.microsoft.com/VisualStudio/feedback/Workaround.aspx?FeedbackID=114694 के माध्यम से मिला। प्री-बिल्ड स्क्रिप्ट विकल्प काम करता है, लेकिन केवल तभी जब असेंबली पहले से मौजूद है। यदि आप एक साफ/निर्माण करते हैं, तो यह काम नहीं करेगा।

+0

बस स्पष्टीकरण के लिए, क्या आप एप्लिकेशन टैब पर प्रोजेक्ट गुणों में हैं, फ़ील्ड "असेंबली नेम" और "डिफॉल्ट नेमस्पेस" को वही मान होना चाहिए? –

+0

क्षमा करें मुझे यह प्रतिक्रिया नहीं मिली ... लेकिन हाँ। मुझे नहीं पता कि यह समस्या क्यों हो रही है, लेकिन विकास के एक साल बाद टीम के हर किसी ने इसे प्राप्त करना शुरू कर दिया, और यह तय हो गया। हमें तब से समस्या नहीं है। यह केवल एक ही असेंबली थी, और हमारे पास ऐसे अन्य लोग हैं जो मेल खाने वाले डिफ़ॉल्ट नामस्थान और असेंबली नामों का उपयोग नहीं करते हैं। –

1

एक्सपी या विस्टा के साथ संगतता मोड में विजुअल स्टूडियो एप्लिकेशन शुरू करने से मेरे पर्यावरण (Win7 64bit) में समस्या हल हो गई।

+0

मेरी विशेष समस्या Vista का उपयोग कर रही थी, लेकिन अच्छी जानकारी जानना! –