अनुरोधित ऑपरेशन को किसी फाइल पर यूजर-मैप्ड सेक्शन के साथ नहीं किया जा सकता है


210

जब भी मैंने अपने बिन फ़ोल्डर में 4 फाइलों को कॉपी करने की कोशिश की, तो मुख्य सेवा को रोकने के बाद, मुझे एक फ़ाइल (टेक्सटेक्स्ट) के साथ एक त्रुटि मिल रही है। त्रुटि है:

Cannot copy TexteDll: The requested operation cannot be performed on a file 
with a user-mapped section open

यह कुछ सिस्टम लॉकिंग के कारण हो सकता है। या शायद एक और प्रक्रिया इस DLL का उपयोग कर रही है। जब मैंने गुगली की, तो मैंने पाया कि सिस्टम को रिबूट करने से यह हल हो सकता है।

क्या कोई इसके लिए कोई कारण या समाधान सुझा सकता है? मैंने टेक्सटेडल (सामान्य, संस्करण, सुरक्षा, आदि) के गुणों का निरीक्षण किया। सब कुछ सामान्य दिखाई देता है।



8
वास्तव में प्रश्न के कई और 'डुप्लिकेट' हैं (उदाहरण के लिए: stackoverflow.com/questions/1818076/… ) - समस्या यह है कि हर बार मूल कारण कुछ अलग है।
MaciekTalaska

6
अगली बार Microsoft की साइट से "प्रोसेस एक्सप्लोरर" का उपयोग करने का प्रयास करें। इसमें "फाइंड हैंडल" नामक एक फीचर है। अपनी फ़ाइल को वहां खोजें और यह आपको दिखाएगा कि उस फ़ाइल पर किस प्रक्रिया का हैंडल है। फिर आप जांच शुरू कर सकते हैं कि उस कार्यक्रम की पहुंच क्यों है। BTW, एक सेवा को रोकना जरूरी निष्पादन योग्य नहीं है कि मेजबान सेवा समाप्त हो जाएगी। एक निष्पादन योग्य कई सेवाओं की मेजबानी कर सकता है। सबसे खराब स्थिति में, बहुत सारी .net सेवाएँ, जो बड़ी मात्रा में मेमोरी का उपयोग करती हैं, उस मेमोरी को रिलीज़ करने के बाद समाप्त हो जाती हैं, जो सेवा के स्टॉप इवेंट के बाद कभी-कभी होती है।
एर्दोगन कुर्तुर

3
Hehehe Visual Studio मेरे DLL को लॉक कर रहा था। विजुअल स्टूडियो को बंद कर दिया और समाधान के पुनर्निर्माण की कोशिश की और यह काम किया।
लेनियल मैककैफ़री

यह स्पष्ट रूप से एक स्मृति संघर्ष है। ऑब्जेक्ट के एक विशेष 'उदाहरण' में कुछ आवंटित बिट मेमोरी मैप की गई है, फिर बाद में पता चलता है कि मेमोरी (स्टेटिक रूप से?) को आवंटित किया गया है, पहले से ही कहीं और मैप किया गया है, सिस्टम एक्सेस के एक अलग स्तर के साथ।
ouflak

जवाबों:


177

मेरे मामले में यह डीबग लॉक करने वाला एक्सप्लोरर था जिसे डीबग फ़ोल्डर में संकलित किया गया था ... अजीब बात है, है ना?

मुझे एक उपकरण का उपयोग करने का पता चला, जिसे अनलॉकर कहा जाता है।

Unlocker के साथ हटाना था, तब भी जब यह कह रहा था कि फ़ाइल पर कोई लॉक नहीं है, और मैं फ़ोल्डर को तब तक नहीं हटा सकता जब तक कि मैंने उस एकल फ़ाइल को नहीं हटाया ...

इसके बाद इसे संकलित किया।

संपादित करें:

मुझे पता चला कि मेरे मामले में ऐसा क्यों हो रहा था। मैंने डीएलएल को विजुअल स्टूडियो के अंदर एक टेक्स्ट एडिटर में खोला था ...


33
मैं अपने कई दृश्य स्टूडियो खिड़कियों में से एक में भी खुला था dlo खुला था। उस अद्यतन को पोस्ट करने के लिए धन्यवाद।
ptfaulkner

3
एक ही बात, किसी तरह खतरे वाले डीएलएल संपादक में एक पाठ विंडो में खुला था।
हार्व

3
DLL भी टैब के रूप में VS में खुला! धन्यवाद!
कॉनवेल

5
पूर्ण प्रकटीकरण: "अनलॉकर" का लिंक कुल स्पाइवेयर है। यह सभी प्रकार के टूलबार और बकवास स्थापित करता है, भले ही आप सभी बक्से को अनचेक करते हुए कह रहे हों कि आप उन्हें नहीं चाहते हैं।
टिम

7
Unlocker के प्रोसेस एक्सप्लोरर इंस्ट्रेड का उपयोग करें । एक बार PE चल रहा हो, तो Find -> हैंडल या Dll पर जाएं और लॉक की गई फ़ाइल का नाम पेस्ट करें। यह दिखाएगा कि किस प्रक्रिया ने इसे बंद कर दिया। इसे मार दें यदि आप सुनिश्चित हैं कि यह करना ठीक है और समस्या को हल किया जाना चाहिए।
निकिता जी।

71
  • कभी-कभी जब आप दो या अधिक परियोजनाओं के बीच संदर्भित असेंबली संस्करण बेमेल के बारे में चेतावनी पर डबल क्लिक करते हैं, तो आप असेंबली व्यू विंडो को बंद करना भूल जाते हैं और यह अन्य टैब के बीच रहता है ... इसलिए आप असेंबली वीएस द्वारा खुद को लॉक किए जाने के साथ समाप्त होते हैं और मुझे यह पता लगाने में काफी समय लग गया कि :)

    वीएस प्रदान करता है शक्ति के साथ सावधान रहें;)

  • एक और डमी परिदृश्य। कभी-कभी बस पूरे ओब्ज फोल्डर को डिलीट कर देना या सिर्फ लॉक की गई चेतावनी के रूप में फाइल इस भद्दे त्रुटि के साथ मदद करता है।

2
मेरे लिए इसे सॉर्ट किया गया ... मैंने एक सिस्टम रीस्टार्ट भी किया लेकिन वीएस ने असेंबली व्यू विंडो को फिर से खोल दिया। सभी टैब को बंद करके काम किया। चीयर्स
डेव लॉरेंस

35

वीएस पर सभी दस्तावेजों को बंद करें और फिर से पुनर्निर्माण करने का प्रयास करें। अगर यह काम नहीं करता है तो वी.एस. यह समस्या DLL फ़ाइलों के लॉक से संबंधित है।


3
वही, वी.एस. के साथ कुछ विचित्रता। पुनरारंभ यह मेरे लिए हल।
PJUK

1
इसने मेरे लिए काम किया। मेरे विशेष परिस्थिति में अजीब बात है। मैंने अपने निर्वासन स्टैंडअलोन को निष्पादित किया था, वीएस पर्यावरण के बाहर। रात भर इसे छोड़ दें (मेमोरी टेस्ट - यह पास हो गया), सुबह इसे बंद कर दें, छोटे कोड में बदलाव होता है, और अचानक इस वजह से मेरा निर्माण पूरा नहीं हो सका। अजीब था कि यह स्मृति इस तरह से कैसे संघर्ष करती थी।
.फ्लाक

गंदा, धन्यवाद, एक खुला दस्तावेज़ त्रुटि का कारण बन रहा था, बीएस!
ब्रायन ओग्डेन

"सभी दस्तावेज़ बंद करें" और वास्तव में मेरे लिए काम किया पुनर्निर्माण! : ओ
एंटोनी मेल्टज़ाइम

11

दृश्य स्टूडियो को बंद करें, बिन को हटाएं, रिलीज़ फ़ोल्डर को डीबग करें, और दृश्य स्टूडियो प्रोजेक्ट को फिर से शुरू करें। मेरी समस्या ठीक हो गई


यह मेरे लिए काम किया! धन्यवाद! मैंने निर्देशिकाओं का नाम बदला, बस मामले में और यह काम किया।
डेविडसेकर

10

मेरे पास एक ही समस्या थी और मेरे मामले में यह दिखाई दिया कि मौजूदा आउटपुट फ़ाइल अन्य एप्लिकेशन द्वारा लॉक की गई थी।

आप यह जांच सकते हैं कि कौन सी एप्लिकेशन आपकी आउटपुट फ़ाइल को OpenedFilesView के साथ लॉक कर रही है: http://www.nirsoft.net/utils/opened_files_view.html


10

मैं एक डेवलपर हूं और Unlocker की तरह Registery में इंजेक्ट किए गए ऐप्स को पसंद नहीं करता। मैंने SysInternals Process Explorer का उपयोग किया, जो प्रक्रिया ने मेरे dll को लॉक कर दिया Find > Find Handle or Dll [Ctrl-F]और इस प्रक्रिया को मार दिया।


1
पाया गया कि इसे वीएस प्रक्रिया द्वारा बंद कर दिया गया था जो वीएस बंद होने पर नहीं मरता था।
योज्तस्तिक

2
DevEnv बंद होने के बाद भी और टास्क मैनेजर ने इसे नहीं दिखाया, प्रोसेस एक्सप्लोरर ने DevEnv सस्पेंड के कई उदाहरण दिखाए। इनको मार डालो और यह काम कर गया।
DeclanMcD

1
यह सबसे सही उत्तर है, क्योंकि यह दिखाता है कि कैसे पता लगाया जाए कि कौन सी प्रक्रिया फ़ाइल को लॉक कर रही है, बजाय इसके कि "मेरे मामले में यह एक्स के कारण था"। विंडोज पर हर डेवलपर को प्रॉक्सेक्स को जोड़ने और उनके टूलबेल में आने का फायदा होगा!
मैट वंचप

9

अन्य लोगों ने पहले ही यह स्थापित कर दिया है कि यह त्रुटि फ़ाइल पर लॉक होने के किसी अन्य अनुप्रयोग के कारण है। केवल उस बिंदु को इंगित करना चाहता था git diffजब तक कि आप उससे बाहर नहीं निकल जाते। मेरे मामले में यही कारण है।


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

1
@codeMagic Git 2.23 (Q3 2019) उस जाल से बच जाएगा। देखें नीचे मेरा उत्तर
VonC

9

मेरी भी यही समस्या थी। मैंने इसे कैसे हल किया:

  1. "कार्य प्रबंधक" खोलें
  2. अंतिम कार्य "Explorer.exe"
  3. "फ़ाइल" पर क्लिक करें -> नया कार्य बनाएं - "explorer.exe" में टाइप करें -> ठीक है
  4. मेरी परियोजना को साफ करें और यह काम करता है

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

आखिरकार! धन्यवाद।
TheJack

6

क्या आप कोई एंटी-वायरस सॉफ़्टवेयर चला रहे हैं। यह संभव है कि एवी सॉफ़्टवेयर (या सॉफ़्टवेयर का कोई अन्य टुकड़ा) फ़ाइल मैपिंग एपीआई का उपयोग करके फ़ाइल को पढ़ रहा था जिससे समस्या हुई।


6

मेरे मामले में मुझे एक लटकी MSBuild.exeप्रक्रिया को मारना था जो फ़ाइल को लॉक कर रहा था (विजुअल स्टूडियो को बंद करने के बाद भी यह वहां था)।


1
आप इसे किसी न किसी। आपका बहुत बहुत धन्यवाद!
लैरी

4

Obj फ़ोल्डर को हटाना और पुनर्निर्माण ने मेरे लिए काम किया


3

मुझे भी यही समस्या थी। रेस्टार्ट ने मेरे लिए काम नहीं किया। कार्य प्रबंधक में VBSCompiler नामक एक प्रक्रिया चल रही थी। मुझे इस त्रुटि को ठीक करने के लिए प्रक्रिया को समाप्त करना पड़ा।


आप अपने समाधान को भी साफ कर सकते हैं और फिर से कोशिश कर सकते हैं
निर्झर वर्मन

3

यहां तैनात किसी भी समाधान ने मेरे लिए काम नहीं किया। यह devenv.exe (विज़ुअल स्टूडियो) फ़ाइल को लॉक कर रहा था, लेकिन अगर मैंने इसे पुनः आरंभ किया, तो यह इसे फिर से लॉक कर देगा।

विचित्र रूप से, विंडोज ने मुझे फ़ाइलों को हटाने के लिए (रीसायकल बिन के लिए) नहीं होने दिया, लेकिन Shift + Delete (स्थायी हटाने) ने काम किया।


2

Visual Studio को बंद करें और इसे व्यवस्थापक के रूप में चलाएँ। यह मेरी समस्या तय है।


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

2

मेरे लिए समाधान वीएस के सभी उदाहरणों को बंद करने और किसी भी फांसी devenv.exe प्रक्रियाओं को मारने के लिए था।


2

मेरे लिए समाधान कंप्यूटर को पुनरारंभ करना था।


2

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

Git 2.23 (Q3 2019) के मामले में ऐसा नहीं होगा

देखें 3aef54e प्रतिबद्ध द्वारा (11 जुला 2019) जोहानिस Schindelin ( dscho)
(द्वारा विलय Junio सी Hamano - gitster- में प्रतिबद्ध d9beb46 , 25 जुला 2019)

diff: munmap()बाहरी अंतर चलाने से पहले फ़ाइल सामग्री

जब बाहरी अंतर से चल रहा हो, तो, कहो, diff toolयह मान लेना सुरक्षित है कि हम फ़ाइलों को प्रश्न में लिखना चाहते हैं।
विंडोज पर, इसका मतलब है कि उक्त फाइलों के लिए एक खुला हैंडल रखने वाली कोई अन्य प्रक्रिया नहीं हो सकती है, या यहां तक ​​कि सिर्फ एक मैप्ड क्षेत्र भी हो सकता है।

तो चलिए यह सुनिश्चित करते हैं कि git diffस्वयं ही प्रश्न में फ़ाइलों के लिए कोई खुला हैंडल नहीं रख रहा है।

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

यह # 1315 git-for-windows को ठीक करता है


1

चींटी के साथ डॉट नेट एप्लिकेशन बनाते समय मैं इन त्रुटियों को देख रहा था।

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


1

मेरे मामले में परियोजना रूट में obj फ़ोल्डर को हटा दिया और परियोजना के पुनर्निर्माण ने मेरी समस्या हल कर दी !!!


0

मुझे इस त्रुटि का सामना करना पड़ा और यह मुद्दा निकला कि एफएक्सपॉप मेरी परियोजना के खिलाफ चल रहा था। मैंने FxCop को बंद कर दिया और फिर मैं फिर से संकलन कर सका।


0

यदि यह अस्थाई ASP.NET फाइलों में एक वेब अनुप्रयोग हटाने वाली फाइल है तो फ़ोल्डर एक समाधान हो सकता है।


0

यदि आप AQ Time जैसे प्रोफाइलर का उपयोग कर रहे हैं, तो ये फ़ाइल को लॉक भी कर सकते हैं। इस मामले में समाधान प्रोफाइलर को पुनरारंभ करना होगा या प्रोफाइलर से प्रश्न में असेंबली को अनलोड / लोड करना होगा। AQ टाइम के लिए मैंने देखा कि यह कुछ समय के बाद फ़ाइल को रिलीज़ कर रहा है, लेकिन मैं अपने जीवन के लिए यह नहीं बता सकता कि वह टाइमआउट क्या है। बेतरतीब लगता है



0

मेरे पास यह त्रुटि एक और 'कंसोल' फ़ाइल की वजह से है, जो दूसरे कंसोल में चल रही है। उफ़।


0

उपरोक्त में से किसी ने भी इस मुद्दे को हल नहीं किया।

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


0

मेरा भी यही मुद्दा था। मैंने अस्थायी फ़ोल्डर से dll को हटा दिया, केवल पहुंच और पुनरारंभ मशीन को पढ़ें और इसे काम कर रहा है।


0

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


-1

प्रोसेस एक्सप्लोरर के माध्यम से स्थानांतरण करके मेरा मुद्दा भी हल हो गया। हालाँकि, मुझे जो प्रक्रिया मारनी थी, वह MySQL Notifier.exe थी जो सभी VS और SQL अनुप्रयोगों को बंद करने के बाद भी चल रही थी।

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