त्रुटि बनाएँ: "प्रक्रिया फ़ाइल तक नहीं पहुँच सकती क्योंकि इसका उपयोग किसी अन्य प्रक्रिया द्वारा किया जा रहा है"


91

मुझे एक C # webformsऐप मिला है , जो कि आज तक सिर्फ तैराकी का काम कर रहा था।

आज, अचानक, हर बार जब मैं ऐप चलाने की कोशिश करता हूं, मुझे एक फ़ाइल लॉकिंग त्रुटि मिलती है:

फ़ाइल "obj \ Debug \ MyProject.exe" को "bin \ Debug \ MyProject.exe" में कॉपी करने में असमर्थ। प्रक्रिया "बिन \ डीबग \ MyProject.exe" फ़ाइल तक नहीं पहुंच सकती क्योंकि इसका उपयोग किसी अन्य प्रक्रिया द्वारा किया जा रहा है।

त्रुटि को स्पष्ट करने से कुछ भी स्पष्ट नहीं होता, अर्थात VS को लगता है कि फ़ाइल लॉक है। और यह निश्चित रूप से विज़ुअल स्टूडियो ही है जो फ़ाइल को लॉक करता है, क्योंकि जब मैं वीएस को बंद करता है और इसे फिर से खोल देता है, तो प्रोजेक्ट ठीक निष्पादित होता है - पहली बार। जब मैं इसे दूसरी बार चलाने का प्रयास करता हूं, तो मुझे फ़ाइल लॉकिंग त्रुटि मिलती है।

वीएस को बंद करना और हर बार जब मैं ऐप चलाना चाहता हूं, तब व्यवहार्य नहीं है! मुझे कैसे पता चलेगा कि फ़ाइल लॉक क्या है, और इसे लॉक होने से रोकें?

संपादित करें: एक और दिलचस्प खोज: मुझे ऐप चलाना भी नहीं आता। बस इसे एक बार संकलित करने के कारण फ़ाइल लॉक हो जाती है; मैं एक पंक्ति में दो बार संकलन नहीं कर सकता!

यह समस्या मेरे समाधान में एक परियोजना के लिए विशिष्ट है। अन्य सभी परियोजनाएँ ठीक काम करती हैं और जितनी बार चाहें उतनी बार निष्पादित की जा सकती हैं। यह केवल एक परियोजना है जो स्वयं बंद हो जाती है।


अगर आप मदद करने के लिए vshost.exe को मारने की कोशिश कर सकते हैं?
रेने

@rene - कोई vshost.exe प्रक्रिया नहीं है। क्या उन्होंने वीएस 2010 में इसका नाम बदला था?
शाऊल बेहार

[आपके ऐप का नाम] .vshost.exe
rene

@rene - नहीं, उस नाम से वर्तमान प्रक्रियाओं में कुछ भी नहीं पता चलता है
शाऊल बेहर

1
@Shaul क्या आपने अपने फॉर्म में एक कस्टम यूज़र कॉंट्रोल जोड़ा है? चलने से पहले डिजाइनर को बंद करने की कोशिश करें: stackoverflow.com/questions/2690119/…
rene

जवाबों:


134

मुझे एक सरल समाधान मिला है जो मेरे लिए काम करता है। यह इस प्रकार चलता है:

जब समस्या होती है, तो बस शीर्ष पर बिल्डिंग कॉन्फ़िगरेशन को बदलें (यदि "रिलीज़" में "डीबग" और इसके विपरीत), निर्माण करें और फिर पिछले कॉन्फ़िगरेशन में वापस बदलें और फिर से निर्माण करें।

स्क्रीनशॉट

मुझे लगता है कि कॉन्फ़िगरेशन बदलने से vcshost और devenv रिलीज़ होते हैं।


2
सर्वश्रेष्ठ उत्तर, IMO। (आह- उन्होंने खुद को
श्रेय

यह एक महान समाधान है! हालांकि कभी-कभी यह किसी कारण (?) के लिए काम करना बंद कर देता है।
क्रिस्टोफर डी। एमर्सन

3
@ क्रिसमर्सन मैंने उस पर भी गौर किया है। मैं ऐप को रिलीज़ करने और बनाने और चलाने के लिए स्विच कर सकता हूं, लेकिन डिबग पर वापस जाने के बाद भी प्रोजेक्ट का निर्माण नहीं कर सकता।
ज़ैक

मैं समाप्त हो गया विधानसभा से छुटकारा पाने के लिए Visual Studio को पुनरारंभ करना होगा। मैंने IIS को रीसेट करने की कोशिश की, और ऊपर का समाधान लेकिन मैं अभी भी फ़ोल्डर में बैठे dll फ़ाइल देख सकता हूँ C: \ Windows \ Microsoft.NET \ विधानसभा \ GAC_MSIL
Weihui गुओ

1
थीस ने ठीक एक बार काम किया, फिर कभी नहीं। वी.एस. को पुनः आरंभ करने के बाद भी नहीं। कोई फर्क नहीं पड़ता कि मैं रिलीज और डिबग के बीच कितना स्विच करता हूं, यह विफल रहता है।
फ्रैंक एच।

24

खैर, मैंने खुद ही इस समस्या को सुलझा लिया - हालाँकि मुझे अभी तक कोई सुराग नहीं मिला है। मैंने परियोजना से सभी फ़ाइलों को हटाकर समस्या को अलग करने का फैसला किया, फिर उन्हें फिर से जोड़ दिया और इस तरह से निर्धारित किया कि कौन सी फाइल मेरी परेशानी का स्रोत थी। इसलिए, एक-एक करके मैंने प्रोजेक्ट के लिए फ़ाइलों को फिर से प्रस्तुत किया, जिस तरह से प्रत्येक चरण को संकलित और साफ किया ... जब तक ... मैंने अंतिम एक जोड़ा ...

... और सब कुछ अभी भी ठीक काम किया।

मैंने अपने मूल .csproj के स्रोत नियंत्रण से तुलना की; कोई वास्तविक अंतर नहीं। और यहां तक ​​कि जब मैंने .csproj के पिछले संस्करण में वापस लौटने की कोशिश की, तब भी यह काम कर रहा था।

काला जादू। यदि यह काम करता है, तो कभी-कभी यह पूछना बेहतर नहीं होता है कि - बस इसे स्वीकार करें और आगे बढ़ें ...

संपादित करें: समस्या एक आवर्ती है, और मुझे विश्वास है कि मैंने इसे अलग कर दिया है जब मेरे पास संकलन समय पर एक सार / सामान्य रूप का डिज़ाइनर डिज़ाइन खुला है।

सबक सीखा: सुनिश्चित करें कि किसी भी सार या सामान्य रूपों या नियंत्रणों का फॉर्म डिजाइनर आपके संकलन से पहले बंद हो गया है! यदि नहीं, तो आपको वीएस बंद करना होगा और फिर से खोलना होगा!


1
शायद यह इसलिए है क्योंकि जो भी फ़ाइल समस्या थी उसे उस प्रक्रिया से एक्सेस नहीं किया जा रहा था जो अब हटा दी गई थी। सभी फाइलों को हटाने से वास्तव में हल हो सकता है। अच्छी सोच।
जेफ लाफे

2
यह अभी भी केवल प्रोजेक्ट (कोई प्रपत्र) कमांड लाइन के लिए होता है, इसलिए मुझे यकीन नहीं है कि आप वास्तव में किसी भी चीज़ पर हैं।
ज़ैक

16

हमने यहां क्या खोज की है, निम्नलिखित है: प्रोजेक्ट गुण पृष्ठ में, डीबग टैब, "दृश्य स्टूडियो होस्टिंग प्रक्रिया सक्षम करें" को अनचेक करें। मैं अनिश्चित हूं कि यह संपत्ति क्या है, लेकिन यह अनियंत्रित होने के बाद काम करता है।


4
यह समस्या को हल करता है लेकिन Console.WriteLine () अब आउटपुट विंडो में स्ट्रिंग्स को आउटपुट नहीं करता है।
पियरे फोर्नियर

2
कंसोल ऐप पर बॉक्स को अनचेक करने के बाद भी समस्या बनी रहती है।
जैक

2
यह मेरे लिए विंडोज क्लाइंट प्रोजेक्ट पर काम करता है। मैंने बॉक्स को अनियंत्रित किया, सफलतापूर्वक बनाया, और फिर इसे फिर से जांचा और फिर से सफलतापूर्वक बनाया।
फी-एक्सयू

1
मेरे लिए काम नहीं कर रहा। अब ऐप को ही लॉक कर दें। मेजबान एप्लिकेशन नहीं।
बोरिस इवानोव

9

वास्तव में आपको "विजुअल स्टूडियो होस्टिंग प्रोसेस को सक्षम करें" चेक करना चाहिए। कम से कम VS2010 के लिए वैसे भी। और मेरे पास भी है:

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

पूर्व-निर्माण विकल्पों में। इस समस्या ने मुझे बहुत लंबे समय के लिए डॉग किया है और जब तक जॉन डब्ल्यू ने इस चेक बॉक्स का उल्लेख नहीं किया था कि मैंने यह भी नोटिस किया था कि यह अस्तित्व में है और निम्न और निहारना पहले से ही अनियंत्रित था।

यह भी ध्यान रखें कि -app-vshost.exe डिबगिंग न होने पर भी पृष्ठभूमि में चलता है। जो ऐसा है जो मुझे लगता है कि हर बार इसे सफलतापूर्वक बनाता है और चलाता है। यह पहले नहीं चल रहा था। और मैंने डिबग और रिलीज़ फ़ोल्डर्स को साफ करने और लक्ष्य प्रकार को लगातार बदलने की कोशिश की और ऊपर वर्णित के अलावा कुछ भी काम नहीं किया। पहले मेरा समाधान बिल्ड के बीच सिर्फ 5 मिनट इंतजार करना था, जो कुछ भी पाने के लिए सुपर कष्टप्रद और समय लेने वाला था। मैंने व्यवहार में कोई बदलाव नहीं देखा है, जहां यह बात सामने आई है कि खुले या XNA बनाम विंडोज़ फॉर्म या डिज़ाइनर को खोले जाने पर कौन से टैब खुलते हैं। यह समस्या 32-बिट या 64-बिट बिल्ड में हुई और इससे कोई फर्क नहीं पड़ता कि क्या मैंने किसी ऐप को ALT-F4 के साथ मार दिया है या इसे टास्क मैनेजर के साथ मार दिया है, जो कि सिद्धांत रूप में, ऐप को संसाधनों को बंद करने या जारी करने की अनुमति नहीं देगा। पहले मुझे लगा कि यह कचरा संग्रहण का मुद्दा है।


यहाँ प्री-बिल्ड इवेंट स्क्रिप्ट ने आखिरकार मेरे लिए यह तय कर दिया - धन्यवाद!
क्रिस्टोफर डी। एमर्सन

यह एकमात्र टिप्पणी थी जिसने कभी भी मेरे लिए कुछ भी किया है, मैं विश्वास नहीं कर सकता कि इस तरह की एक साधारण समस्या पैच के बिना वर्षों तक जारी रही।
कॉन्स्टेंटाइनके

7

VS2017 - विंडोज़ कार्य प्रबंधक में MSBuild.exe के सभी उदाहरणों को बंद करके हल किया गया


5

थोड़ी देर के लिए, लेकिन मैं इसे प्रोजेक्ट> टैब "डिबग" के गुणों पर जाकर हल करता हूं, "दृश्य स्टूडियो होस्टिंग प्रक्रिया को सक्षम करें" को अनचेक करें।


5

मैंने लॉक की गई फ़ाइल (विंडोज एक्सप्लोरर का उपयोग करके) का नाम बदलकर इस समस्या को दूर किया है। मुझे फ़ाइल को हटाने की अनुमति नहीं थी, लेकिन लॉक की गई फ़ाइल का नाम बदलकर!


यह एकमात्र समाधान था जो अब तक मेरे लिए काम कर रहा है। महान समाधान। मुझे रिबूट करने की परेशानी से बचाता है।
JHubbard80

एक पूर्व-निर्माण के रूप में यह अच्छा होगा। मेरे पास हमेशा यह मुद्दा है! गुस्सा कर देने वाला।
शिम्मी वेइटहैंडलर

4

मैं फ़ोल्डर बिन \ डीबग को हटाने और संभवतः, वी.एस. को पुनरारंभ करके इसे हल किया


समस्या यह है कि आप हर बार ऐसा नहीं कर सकते। मेरे लिए, हर बार जब मैं पुनर्निर्माण करता हूं तो त्रुटि होती है और फिर ऐप को चलाने का प्रयास करें।
FrenkyB

2

मेरे लिए, यह एक विंडोज़ सेवा थी जो स्थापित और चल रही थी। एक बार मैंने इसे रोक दिया, तो निर्माण सफल रहा।



1

हाल ही में इस समस्या में भाग गया जब एक समाधान का निर्माण करने का प्रयास कर रहा हूं, जो (न केवल एक winforms proj) काम कर रहा है। विफलता के
अलावा build, मैंने देखा कि सफाई परियोजनाएं चुपचाप विफल हो जाएंगी (बिन फ़ोल्डर की जांच से पता चला कि फाइलें वास्तव में मिटा नहीं दी गई थीं) और विजुअल स्टूडियो को बंद करने से devenvप्रक्रिया समाप्त नहीं हुई - बल्कि, यह दुर्घटना का कारण बना। Windows पुनर्प्राप्ति प्रक्रिया तब Visual Studio को पुनरारंभ करेगी।

कुछ परीक्षण और त्रुटि के बाद, मुझे केवल उन समस्याओं का पता चला, जब मैंने वीएस को शुरू करने पर "हाल के" मेनू से समाधान खोला। आम तौर पर इसके अनुसार काम करने
से समाधान को खोलना File >> Open >> Project/Solution

वर्तमान में पता नहीं क्यों - इस पर नज़र रखेगा, लेकिन अभी के लिए, कम से कम मैं काम कर सकता हूं!


1

बस संदर्भों की जांच करें और परियोजना के लिए स्व-संदर्भ हटा दें।

स्पष्टीकरण: मेरी समस्या कस्टम नियंत्रण बनाने के बाद शुरू हुई और इसे डिज़ाइन रूपों में उपयोग करने के लिए टूलबॉक्स पैलेट में खींचें और छोड़ें। सबसे पहले एक चेतावनी दिखाई दी जिसमें कहा गया था कि कस्टम नियंत्रण स्रोत फ़ाइल (.cs) और निष्पादन योग्य (-.exe) परियोजनाओं के बीच एक अतिरेक था। निष्पादित / डिबगिंग में त्रुटि दिखाई दी: (.exe) का उपयोग करने में असमर्थ क्योंकि इसका उपयोग किया जा रहा है (और यह सच था)।

मैंने वास्तव में कस्टम नियंत्रण के बारे में पूरे स्रोत कोड को हटा दिया और समस्या अभी भी बनी हुई है, जब तक कि मैंने संदर्भों की जांच नहीं की और यह पूर्व कस्टम नियंत्रण प्राप्त करने में "सक्षम" होने के लिए खुद को संदर्भित कर रहा था। मैंने संदर्भ हटा दिया और किया !!


1

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


1

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

शायद मैं एक निर्माण कदम जोड़ सकता हूं जो पृष्ठभूमि को चलाने वाले एप्लिकेशन के लिए दिखता है और नया शुरू करने से पहले इसे मारता है।


1

मेरे पास एक ही मुद्दा था और पिछले उत्तरों में बताए गए किसी भी तरीके का उपयोग करके इसे ठीक नहीं किया जा सकता था। मैंने टास्क मैनेजर में "SSIS डिबग हिस्ट (32 बिट)" के सभी उदाहरणों को मारकर और अब सामान्य रूप से काम करके समस्या का समाधान किया।


1

.NET प्रोजेक्ट के ओबेज, रिटेल और डिबग फोल्डर को डिलीट करना और दोबारा निर्माण करना मेरे लिए फिर से काम कर गया।


0

आपका वेब ऐप कैसे कॉन्फ़िगर किया गया है? क्या यह कैसिनी (ट्रे वेब सर्वर) या IIS के तहत चलता है?

हालांकि यह सामान्य रूप से नहीं होना चाहिए। मुझे लगता है कि ProcessExplorer आपको बता सकता है कि किसी प्रक्रिया ने किन फ़ाइलों को लॉक किया है। यदि अन्य sysinternals उपकरणों में से एक एक्सप्लोरर की प्रक्रिया नहीं है।

एसआई टूल में से एक को डाउनलोड करने से पहले भी कोशिश करने के लिए एक चीज कैसिनी वेब सर्वर को रोकना है, और यह देखना कि क्या फ़ाइल को मुक्त करता है।


यह एक वेब ऐप नहीं है; यह जीत है।
शुल बेहर

3
आह, तो आप अपने सवाल को संपादित करना चाह सकते हैं क्योंकि आप "मैं एक सी # वेबफॉर्म ऐप प्राप्त कर चुका हूं ..."
एंडी

0

मेरे लिए जो काम किया वह IIS को पुनरारंभ करना था


0

मुझे भी यही समस्या थी। डिबग / रिलीज़ कॉन्फ़िग को बदलने से चाल नहीं चली। कम से कम बीच में निर्माण के बिना नहीं।

मेरे समाधान (winform) में यह डिज़ाइनर में winform के मुख्य भाग को खोलकर हल किया गया था। कोड (F7) पर स्विच करना। फिर कोड को बंद करना, विजेता के डिजाइनर को बंद करना और सभी को फिर से बनाना (ctrl-shift-B)। इसने मेरे लिए काम किया।

winform ऐप (जो एक बैकग्राउंडर चलाता है) के भीतर से किसी तरह के हैंडल की तरह लगता है, अभी भी इस्तेमाल की गई कुछ अन्य लाइब्रेरी पर फ़ाइल हैंडल था।


0

मेरे पास विजुअल स्टूडियो के दो उदाहरण हैं जिन्होंने एक ही समाधान खोला।


0

मेरे मामले में कुछ vstest प्रक्रियाएं चल रही थीं (विभिन्न नामों के साथ लेकिन सभी स्ट्रिंग vstest युक्त)। मुझे उन्हें टास्कमग्र में समाप्त करना पड़ा।



0

जब मैंने इस प्रक्रिया को समाप्त कर दिया .Net Core Host, तो सब कुछ ठीक हो गया। मुझे Visual Studio को बंद करने या कुछ और बदलने की ज़रूरत नहीं थी।


0

उन लोगों के लिए जो वीएस में डॉकर के साथ विकसित हो रहे हैं, विंडोज़ सेवा के लिए डॉकटर को पुनरारंभ करें और समस्या तुरंत हल हो जाएगी।

डॉकटर को पुनः आरंभ करने से पहले मैंने सभी उल्लिखित उत्तरों की कोशिश की, एक msbuild.exe प्रक्रिया नहीं चल रही थी, वी.एस. को पुनः आरंभ करने का भी प्रयास किया, बिना लाभ के, केवल पुनः आरंभ करने वाले ने काम किया।


0

एक और समाधान: जब फाइलें लॉक हो जाती हैं, तो ब्लॉक करने की प्रक्रिया को रिपोर्ट किया जाता है (कुछ "ServiceHub.Host.CLR.x64 (7764)") जैसे कि इसे कोष्ठक में आईडी के साथ। प्रक्रिया से छुटकारा पाने के लिए, PowerShell (x + Win + I) खोलें और टाइप करें: "Stop-Process -Id idNumber"।


0

मैं हाल ही में इस मुद्दे पर भागा जब सेवा कपड़ा के लिए तैनात है। त्रुटि का अर्थ है 'फ़ाइल' उपयोग में है, हालाँकि, मैंने पाया कि पोर्ट का उपयोग किसी अन्य IDE द्वारा किया जा रहा था। एक चल रही सेवा को रोक कर जो पहले से ही पोर्ट पर होस्ट कर रही थी, मैं इस अपवाद को होने से रोकने में सक्षम था।


0

मैंने उसी मुद्दे का सामना किया था। मैंने ऊपर सूचीबद्ध कई समाधानों की कोशिश की, लेकिन उन्होंने मेरे लिए काम नहीं किया।

मैंने सर्वर एक्सप्लोरर से कनेक्शन बंद करके इस मुद्दे को हल किया और सभी टैब को बंद कर दिया जो विजुअल स्टूडियो में खुला था।


0

यदि यह एक SSIS प्रोजेक्ट है, तो टास्क मैनेजर खोलें और DtsDebugHost.exe के सभी इंस्टेंस को मारें, जो कि लॉक की गई फ़ाइलों को रिलीज़ करें।


0

मैं विज़ुअल स्टूडियो कोड का उपयोग करता हूं और मुझे यह त्रुटि मिली क्योंकि देव सर्वर चल रहा था (मैंने दबाकर देव सर्वर को चलाया Ctrl + F5)।

इस प्रकार, मैंने इसे रोकने के लिए स्टॉप साइन पर क्लिक किया और त्रुटि चली गई।


0

मेरे पास यह मुद्दा था (और इसका एक मुद्दा मैंने अन्य स्थानों पर देखा है न कि सिर्फ वीएस)।

यह ड्रॉपबॉक्स (मेरे मामले में) के कारण है। कुछ कोड संपादित करने और चलाने के बाद, कभी-कभी ड्रॉपबॉक्स तुरंत फ़ाइल को लॉक कर देता है (इसलिए यह इसे संसाधित कर सकता है)।

समाधान 1. बस फिर से रन मारा

समाधान 2. ड्रॉपबॉक्स को रोकें। (अच्छा नहीं अगर आपका ड्रॉपबॉक्स आपके क्लाउड बैकअप के रूप में उपयोग करता है)

समाधान 3. ड्रॉपबॉक्स सिंक सूची से बिल्ड फ़ोल्डर निकालें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.