अद्यतन: इस बग को पुन : पेश करने वाला एक नमूना प्रोजेक्ट यहां Microsoft कनेक्ट पर पाया जा सकता है । मैंने यह भी जांचा और सत्यापित किया है कि नीचे दिए गए उत्तर में दिए गए समाधान उस नमूना परियोजना पर काम करते हैं। यदि यह समाधान आपके लिए काम नहीं करता है, तो आप शायद एक अलग मुद्दा (जो एक अलग प्रश्न में है) हो।
यह एक ऐसा प्रश्न है, जो स्टैक ओवरफ्लो और अन्य स्थानों पर दोनों से पहले पूछा जा चुका है, लेकिन मैंने अब तक जो भी सुझाव दिए हैं, उनमें से किसी ने भी मेरी मदद नहीं की है, इसलिए मुझे सिर्फ एक नया प्रश्न पूछने की कोशिश करनी है।
परिदृश्य: मेरे पास एक साधारण विंडोज फॉर्म एप्लीकेशन (C #, .NET 4.0, विजुअल स्टूडियो 2010) है। इसके कुछ आधार रूप हैं जो अधिकांश अन्य रूपों से प्राप्त होते हैं, यह डेटाबेस एक्सेस के लिए एंटिटी फ्रेमवर्क (और POCO वर्ग) का उपयोग करता है। न फैंसी, न मल्टी-थ्रेडिंग या कुछ भी।
समस्या: थोड़ी देर के लिए सब ठीक था। फिर, जब मैं एप्लिकेशन लॉन्च करने वाला था, तब सभी, नीले रंग से बाहर, विजुअल स्टूडियो बनाने में विफल रहा। मुझे चेतावनी मिली "फ़ाइल हटाने में असमर्थ '... बिन \ डीबग \ [प्रोजेक्टनेम।। एक्सएक्सएक्स'। रास्ते तक पहुंच '... बिन \ डीबग \ [प्रोजेक्टनेम"। एक्सएक्स' से इनकार किया गया है। " और त्रुटि "फ़ाइल को कॉपी करने में असमर्थ 'obj \ x86 \ Debug \ [ProjectName] .exe' को 'bin \ Debug \ [ProjectName] .exe'। प्रक्रिया फ़ाइल 'bin \ Debug \" ProjectName] तक नहीं पहुँच सकती। 'क्योंकि इसका उपयोग दूसरी प्रक्रिया द्वारा किया जा रहा है। " (मैं पुनर्निर्माण करते समय चेतावनी और त्रुटि दोनों प्राप्त करता हूं, लेकिन बिल्ड रन करते समय केवल त्रुटि - यह प्रासंगिक नहीं है?)
मैं पूरी तरह से ठीक समझता हूं कि चेतावनी और त्रुटि संदेश क्या कहता है: विजुअल स्टूडियो स्पष्ट रूप से एक्स-फाइल को अधिलेखित करने की कोशिश कर रहा है, जबकि यह उसी समय किसी कारण से उस पर लॉक है। हालाँकि, यह मुझे समस्या का हल खोजने में मदद नहीं करता है ... केवल एक चीज जो मैंने काम कर रही है वह है विज़ुअल स्टूडियो को बंद करना और इसे फिर से शुरू करना। निर्माण और लॉन्च करना तब काम करता है, जब तक मैं कुछ रूपों में बदलाव नहीं करता, तब तक मुझे फिर से वही समस्या होती है और फिर से शुरू करना पड़ता है ... काफी निराशा होती है!
जैसा कि मैंने ऊपर उल्लेख किया है, यह एक ज्ञात समस्या है, इसलिए बहुत सारे सुझाए गए समाधान हैं। मैं सिर्फ वही सूची दूंगा जो मैंने पहले ही यहाँ आज़माया है, इसलिए लोग जानते हैं कि क्या छोड़ना है:
- एक नया स्वच्छ समाधान बनाना और पुराने समाधान से फाइलों को कॉपी करना।
परियोजना के पूर्व-निर्माण कार्यक्रम में निम्नलिखित को जोड़ना:
if exist "$(TargetPath).locked" del "$(TargetPath).locked" if not exist "$(TargetPath).locked" if exist "$(TargetPath)" move "$(TargetPath)" "$(TargetPath).locked"
निम्नलिखित प्रोजेक्ट गुण (.csproj फ़ाइल) में जोड़ना:
<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>
हालांकि, उनमें से किसी ने भी मेरे लिए काम नहीं किया, इसलिए आप शायद देख सकते हैं कि मैं थोड़ा निराश क्यों होने लगा हूं। मुझे नहीं पता कि और कहाँ देखना है, इसलिए मुझे आशा है कि किसी के पास मुझे देने के लिए कुछ है! क्या यह वीएस में एक बग है, और यदि ऐसा है तो एक पैच है? या मैंने कुछ गलत किया है, क्या मेरे पास एक परिपत्र संदर्भ या समान है, और यदि ऐसा है तो मुझे कैसे पता चल सकता है?
किसी भी सुझाव अत्यधिक सराहना कर रहे हैं :)
अद्यतन: जैसा कि नीचे टिप्पणी में उल्लेख किया गया है, मैंने भी प्रोसेस एक्सप्लोरर का उपयोग करके जांच की है कि यह वास्तव में विजुअल स्टूडियो है जो फ़ाइल को लॉक कर रहा है।