निर्माण के दौरान विजुअल स्टूडियो "कॉपी नहीं कर सका" ...


347

मुझे अपने VS2012 C # प्रोजेक्ट के निर्माण के दौरान यह त्रुटि मिलती रहती है

Error   41  Could not copy "obj\Debug\WeinGartner.WeinCad.exe" to
 "bin\Debug\WeinGartner.WeinCad.exe". 
 Exceeded retry count of 10. Failed.    


Error   42  Unable to copy file "obj\Debug\WeinGartner.WeinCad.exe" to
"bin\Debug\WeinGartner.WeinCad.exe". The process cannot access the file
'bin\Debug\WeinGartner.WeinCad.exe' because it is being used by another 
process.    

अब मुझे पता चला है कि इस प्रक्रिया को मार रहा है

Weingartner.WeinCad.vhost.exe

काम करता है (कभी-कभी) लेकिन यह मेरी नसों पर हो रहा है। किसी भी तरह से यह सब होने से रोकने के लिए?

मेरी डिबगर सेटिंग्स हैं

यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें


मेरे लिए यह रिलीज़ डायरेक्टरी में मैन्युअल रूप से लॉन्च .exe के कारण हुआ था। समस्या यह थी कि वीएस एक निष्पादन योग्य की नकल नहीं कर सकता है जो अभी भी चल रहा है। मैं इसे ठीक से संसाधनों की सफाई के साथ ठीक करने की कोशिश करूँगा ताकि कार्यक्रम खिड़की के करीब बटन के बाद लटका न छोड़ें।
लहजोन_ज


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

जवाबों:


401

मुझे विजुअल स्टूडियो 2013 में इसी तरह के त्रुटि संदेशों का सामना करना पड़ा है।

ज्यादातर, मैंने पाया है कि यह स्थिति तब हुई है जब एक अपवाद के कारण एक डिबग प्रक्रिया को रोक दिया गया था।

जब स्वच्छ + बिल्ड ने मेरे लिए इस समस्या को हल नहीं किया है, तो मुझे निम्नलिखित काम करके सफलता मिली है:

  • विजुअल स्टूडियो को बंद करना
  • binऔर objफ़ोल्डरों को हटाना , और
  • विजुअल स्टूडियो को फिर से खोलना।

यह "बग" विजुअल स्टूडियो 2003 से अस्तित्व में है।

अंत में, मैंने यह भी पाया है कि मैं अक्सर निष्पादन योग्य फ़ाइल का नाम बदलकर और फिर उसे हटाकर इस समस्या को दूर कर सकता हूं।


8
यहाँ वही, VS2013 छोड़ने, निर्माण कलाकृतियों को हटाना, पुनः आरंभ करना -> सभी अच्छे।
काकाऊ

49
मेरे पास एक ही मुद्दा है, लेकिन वीएस को फिर से शुरू करने के बाद मुझे एक निर्माण मिलता है, और फाइलें फिर से बंद हो जाती हैं ..
सोनिक सोल

54
यह एक समाधान नहीं है, सबसे अच्छा एक आंशिक समाधान है। मैं हर 10min वी.एस. को पुनः आरंभ नहीं करना चाहता। समाधान की सफाई मेरे लिए काम करती है, लेकिन हर 10 मिनट में सफाई करना भी एक समाधान नहीं है।
लेजेंड्स

7
मेरे अनुभव से, VS2013 मेरे लिए दिन में कम से कम 10 बार ऐसा करता है, चाहे मैं किसी भी मशीन को विकसित कर रहा हूं। यह बग की तरह बदतर हो गया है। सिर्फ '
AR

28
बग अभी भी वीएस 2019 में मौजूद है।
आकाश केसी

107

विजुअल स्टूडियो प्रीमियम 2013 (अपडेट 3) में, मैंने इसे प्री-बिल्ड वन-लाइनर के साथ हल किया:

(if exist "$(TargetDir)*old.pdb" del "$(TargetDir)*old.pdb") & (if exist "$(TargetDir)*.pdb" ren "$(TargetDir)*.pdb" *.old.pdb)

यह इनायत किसी भी पुरानी पीडीबी फ़ाइलों को हटा देता है (यदि यह हो सकता है), तो कुछ भी नाम बदलकर छोड़ दिया जाता है .old.pdb। एक अच्छा साइड इफेक्ट यह है कि अगर पुराने पीडीबी को अभी भी लॉक किया गया है, तो यह सिर्फ फ़ाइल नाम में एक और .old टुकड़ा जोड़ता है, और वे सभी अगली बार जब आप विजुअल स्टूडियो को पुनरारंभ करते हैं और बिल्ड करते हैं, तो वे साफ हो जाते हैं।

उदाहरण के लिए, बिल्ड / डिबग सत्र 1 पत्ते MyProject.pdbलॉक।
अगली बार जब आप निर्माण करें:
MyProject.pdb->MyProject.old.pdb

फिर, निर्माण / डिबग सत्र 2 शुरू कर दिया है, और दोनों MyProject.pdb और MyProject.old.pdbअभी भी बंद हैं:
MyProject.old.pdb-> MyProject.old.old.pdb
MyProject.pdb->MyProject.old.pdb

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


5
वीएस २०१०, वीएस २०१२ में वही
बूगीर १६'१५

7
धन्यवाद, बजाय exe फ़ाइलों का उपयोग करने के लिए अपने उदाहरण को संशोधित करने के साथ मेरे लिए पूरी तरह से काम किया। मुझे लगता है कि यह नवीनतम VS 2015 CTP में भी एक बग हो सकता है।
जॉनी स्कोवडाल

खुशी है कि यह मदद मिली - मेरे पास अभी भी मेरी प्री-बिल्ड कमांड स्थापित है, और यह काफी अच्छी तरह से काम करता है कि मैं इसे भूल गया था!
ज्योफ

3
मुझे प्रिंसिपल पर ऐसा करने से नफरत है, लेकिन यह काम करता है, इसलिए ऐसा है! :) इस मोती को साझा करने के लिए धन्यवाद, ज्योफ!
kayleeFrye_onDeck

1
नवीनतम (2018-03-11) विजुअल स्टूडियो 2017 v15.6.1: अभी भी एक मुद्दा है। डिबगिंग, अपवाद, लक्ष्य निर्देशिका में असेंबलियों को बंद कर दिया। * .Pdb के साथ उपरोक्त समाधान * .dll में तब भी लागू होता है।
माइकल डे वोल्डे

71

ऐसा इसलिए है क्योंकि आपने अपना एप्लिकेशन बंद कर दिया है, लेकिन यह अभी भी बैकग्राउंड में चल रहा है।

अस्थायी समाधान:

  • टास्क मैनेजर ( Ctrl+ Alt+ Esc) पर जाएं।
  • प्रक्रियाओं टैब पर जाएं और "YourProjectName.exe" ढूंढें।
  • यदि आप अपनी प्रक्रिया नहीं खोज सकते हैं, तो "सभी उपयोगकर्ताओं से प्रक्रिया दिखाएं" जांचें।
  • इसे प्रोसेस करें।

स्थायी समाधान: आपको कोडिंग के माध्यम से अपना आवेदन बंद करना होगा। यहाँ कोड है ...

System.Windows.Forms.Application.Exit();

आपको इस कोड को फ़ॉर्म के समापन इवेंट में सभी रूप में रखना होगा। उदाहरण:

private void frm_menu_FormClosing(object sender, FormClosingEventArgs e)
{
    System.Windows.Forms.Application.Exit();
}

1
बिल्कुल यही था। विजुअल स्टूडियो दुर्घटनाग्रस्त हो गया था और IIS एक्सप्रेस अभी भी चल रही थी (मेरे मामले में)। मुझे बस इतना करना था कि टास्क बार खोलें और IIS एक्सप्रेस आइकन पर राइट-क्लिक करें और बाहर निकलें। धन्यवाद।
निक-विल्सन

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

25

.vhost.exe एक डीबगर प्रक्रिया है, इसलिए ऐसा प्रतीत होता है कि डीबग की जा रही प्रक्रिया ठीक से बंद नहीं हुई है। संभावना है कि आपके पास एक बग है जो इसे जीवित रख रहा है और डिबग प्रक्रिया को सही ढंग से रोक नहीं रहा है - प्रक्रिया से अलग करने के विकल्प हैं जब आप डीबगर को मारने के बजाय 'स्टॉप डिबगिंग' पर क्लिक करते हैं तो शायद आपके पास वह सेट हो।

लेकिन यह समस्या है - जिस फ़ाइल को आप कॉपी करने की कोशिश कर रहे हैं, वह लॉक है (यानी अभी भी उपयोग किया जा रहा है) OS द्वारा ताकि इसकी कॉपी को रोका जा सके। सुनिश्चित करें कि फ़ाइल मुफ़्त है और आप कॉपी कर पाएंगे।


मैंने अपने डिबगर विकल्पों को प्रश्नों में जोड़ा है। मुझे पूरा यकीन है कि यह प्रक्रिया को मार देना चाहिए, लेकिन शायद मुझे कुछ विकल्प समझ में नहीं आते हैं।
ब्रैडगोनसर्फिंग

में Visual Studio 2019, मुझे एक समान संदेश मिल रहा है, हालांकि अब यह कुछ आउटपुट में प्रक्रिया का उल्लेख करता है (सभी नहीं)। यह testhost.x86.exe था जिसे मुझे मारना था Task Manager। इसके बाद यह परीक्षण प्रक्रियाओं में से एक का पता लगाना बंद कर दिया।
एंडिज

23

मैंने इसे टास्क मैनेजर में IISExpress को मारकर हल किया है


20

आपको अपने एंटीवायरस को निष्क्रिय करना चाहिए (अगर यह अवास्ट है तो निस्संदेह) और फिर से प्रयास करें। इसने मेरी मदद की। समस्या यह है कि डिबगर / बिल्डर .exe फ़ाइल बनाता है जिसे एवास्ट द्वारा खतरे के रूप में पहचाना जाता है और वीएस द्वारा निष्पादित किए जाने से ठीक पहले हटा दिया जाता है।


अच्छी पकड़। मैं हमेशा अवास्ट से नफरत करता हूं।
स्टैकडाउनफ्लो

अवास्ट मेरे लिए भी समस्या थी। फ़ाइल सिस्टम शील्ड को निष्क्रिय करना उत्तर था। मैंने अपने विज़ुअल स्टूडियो \ प्रोजेक्ट फ़ोल्डर को बहिष्करण में जोड़ने की कोशिश की, लेकिन यह काम नहीं किया।
कीथबी

1
मुझे Symantec समापन बिंदु सुरक्षा के साथ एक ही समस्या है। आईटी विभाग में किसी ने सुरक्षा स्तर को बहुत ऊंचा कर दिया है। धन्यवाद पिटर्स।
ssimm

मैं जोड़ूंगा, कि आप एवी को निष्क्रिय करने या इसके सुरक्षात्मक उपकरणों में से एक के बजाय, उपयोग के लिए obj \ Debug निर्देशिका के लिए अपवाद बना सकते हैं।
ए। काली

धन्यवाद! मैंने पाया कि यह मेरे .exe फ़ाइल को अवरुद्ध करने वाला MalwareBytes था।
NL3294

15

मैं पूर्व निर्माण कार्रवाई का पालन करके आपूर्ति के माध्यम से इस मुद्दे (वीएस 2010) को ठीक करने में सक्षम था;

if exist "$(TargetPath).locked" del "$(TargetPath).locked"

if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"

1
@luckyluke, आपकी प्रोजेक्ट संपत्तियों में, वह खंड है जहाँ आप पूर्व-निर्मित स्क्रिप्ट जोड़ सकते हैं। उपरोक्त स्क्रिप्ट को उस निर्दिष्ट क्षेत्र में कॉपी और पेस्ट करें और प्रोजेक्ट का पुनर्निर्माण करें / अपना आवेदन चलाएं
नायर

13

उद्धरण:

वर्कअराउंड इसे> प्रोजेक्ट के प्री-बिल्ड इवेंट कमांड लाइन प्रॉपर्टी (बिल्ड इवेंट्स टैब में) में डालने के लिए है:

सांकेतिक टुकड़ा

if exist "$(TargetPath).locked" del "$(TargetPath).locked"

if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"

8

अपवाद

विजुअल स्टूडियो में कुछ मामलों में जब आप IISExpress चलाने के शीर्ष पर आप (Build || Rebuild) इस अपवाद के साथ सामना करते हैं:

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

समाधान

  1. वेब प्रोजेक्ट पर राइट क्लिक करें जिसे बनाने की जरूरत है।
  2. गुणों पर क्लिक करें।
  3. बाईं ओर बिल्ड ईवेंट टैब चुनें।
  4. प्री-बिल्ड इवेंट कमांड लाइन में इन 2 लाइन को चिपकाएँ:
tasklist /fi "imagename eq iisexpress.exe" |find ":" > nul
if errorlevel 1 taskkill /f /im "iisexpress.exe"

तुम अच्छे हो 2 जाओ!


6

ऐसा लगता है कि किसी प्रोजेक्ट का असेंबली नाम बदलने से समस्या ठीक हो जाती है।

इसलिए इसके बजाय

यहां छवि विवरण दर्ज करें

मैं इसे इसे बदल देता हूं

यहां छवि विवरण दर्ज करें

ध्यान दें कि मैंने इसे बस से बदल दिया Increment and Recallहै Increment_Recall, मैंने अभी रिक्त स्थान हटा दिए हैं। यह अब मेरे लिए ठीक काम कर रहा है।


6

प्रक्रिया को मारना w3wp.exe (IIS) अक्सर इसे हल करेगा।
आम तौर पर, आप उस प्रक्रिया को जान सकते हैं जिसमें बिन फ़ोल्डर में नेविगेट करके फ़ाइल पर ताला है और इसे हटाने की कोशिश कर रहा है। त्रुटि संदेश जो पॉप अप करेगा, यदि कोई अन्य प्रक्रिया इसका उपयोग कर रही है, तो उस प्रक्रिया का नाम शामिल होगा जिसे मारने की आवश्यकता है।


4

मुझे विंडोज 8 पर वीएस 2012 संस्करण 11.0.60610.01 अपडेट 3 पर समान समस्या का सामना करना पड़ा

कोई डिज़ाइनर विंडो नहीं खुली थी और प्रोजेक्ट एक साधारण कंसोल एप्लीकेशन था।

फ़ाइल को एक्सेस करने की vshost प्रक्रिया को हटाने से अधिकांश समय काम नहीं होता है क्योंकि प्रक्रिया फ़ाइल तक नहीं पहुँच रही है।

सबसे सरल वर्कअराउंड जो काम करता है और कम से कम समय लेता है, प्रोजेक्ट को समाधान से निकालना, समाधान में एक और प्रोजेक्ट बनाना और फिर मूल बैक जोड़ना है।

यह एक अड़चन है और समय की बर्बादी है लेकिन यह अन्य सभी विकल्पों में से सबसे कम महंगा है जो मुझे पता है।

उम्मीद है की यह मदद करेगा...


आपको बस इतना करना है कि सभी का पुनर्निर्माण करें और एक और 10 कोशिशों के लिए सब कुछ ठीक है। ज्यादा असुविधा नहीं।
स्कॉट शॉ-स्मिथ

@ शॉक-स्मिथ मेरे लिए काम नहीं करता है। और कुछ अन्य टिप्पणियों के आधार पर, मैंने दूसरों के लिए भी काम नहीं किया है। मेरे मामले में अवास्ट की स्थापना रद्द करने ने इसे ठीक कर दिया।
user316117

4

मुझे लगता है कि मैंने Break all processes when one process breaksडिबग विकल्पों (ऑप का पहला स्क्रीनशॉट-> दूसरा विकल्प) में चेक मार्क को हटाकर इसे हल किया ।
मैं इसे अनियंत्रित करने के बाद से यह कुछ समय के लिए अच्छी तरह से निर्माण / चल रहा है।
मैं अपनी परियोजना में MySql NET कनेक्टर और DevExpress नियंत्रणों का उपयोग कर रहा हूं। उनमें से एक हो सकता है कि इस ध्वज को सक्रिय करने के कारण कनेक्शन, बाइंडिंग आदि का अच्छी तरह से निपटान नहीं हो रहा था।

संपादित करें: निश्चित रूप से यह काम करता है! कोई और अधिक 'फ़ाइल की प्रतिलिपि बनाने में असमर्थ' और कोई अधिक डिज़ाइनर त्रुटियाँ नहीं।


1
अन्य किसी भी समाधान ने मेरे लिए काम नहीं किया। यह एक ही है। मैं विजुअल स्टूडियो 2017 13.2 का उपयोग कर रहा हूँ
xleon

4

अपने मास्टर प्रोजेक्ट टास्किल / f / Fi "pid gt 0" / im "YourProcess.vshost.exe" के प्री-बिल्ड इवेंट में जोड़ें


वास्तव में इस तरह से समस्या को हल करना पसंद नहीं है, लेकिन यह काम किया!
पेट्टर टी

मैंने इस समस्या के लिए सबसे सरल कार्य समाधान पाया है।
dscharge

4

मेरा 10 सेंट का योगदान है।

मुझे अभी भी यह समस्या कभी-कभी VS 2015 अपडेट 2 पर मिलती है।

मैंने पाया कि संकलन लक्ष्य को स्विच करने से समस्या हल होती है।

इसे आज़माएं: यदि आप DEBUG में RELEASE में जाते हैं और निर्माण करते हैं, तो DEBUG में वापस जाएं। समस्या दूर हो गई है।

Stefano


हाँ! बस। यह इस कष्टप्रद समस्या का एक सरल समाधान है! पूरी तरह से मेरे लिए काम किया। आसान और त्वरित! बहुत बहुत धन्यवाद।
मिस्टर श्नीटज़ेल

1
इससे मेरा काम बनता है! संकेत: डीबग किए गए विकल्पों के साथ >> विकल्प >> डिबगिंग >> जनरल >> "मैनेज कंपैटिबिलिटी मोड का उपयोग करें" वर्कअराउंड की आवश्यकता नहीं है!
leon22

4

नीचे दिए गए चरणों का पालन करें

  1. कार्य प्रबंधक खोलें (Ctrl + Alt + Delete)
  2. प्रदर्शन टैब के अंतर्गत < ProjectNameOfYours.exe > चुनें।
  3. एंड प्रोसेस पर क्लिक करें।
  4. अब समाधान बनाएँ।

उपरोक्त चरणों ने स्थायी रूप से त्रुटि हल कर दी :)


4

यदि कोई भी उत्तर काम नहीं करता है, तो इस सरल जांच का प्रयास करें। किसी भी MSbuild.exe को चलाने और अपने प्रोजेक्ट EXE को पकड़ने के लिए खोजें। MSBuild.exe को मारें और आपको जाने के लिए अच्छा होना चाहिए।


2

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


2

यह अन्य उत्तर देखें । मूल रूप से, आपके पास MSBuild.exe प्रक्रियाएँ हो सकती हैं, जो संसाधन खपत करने वाली फ़ाइलों की पृष्ठभूमि में चल रही हैं। यदि आपके पास कोई पूर्व या पोस्ट बिल्ड कार्य हैं जो MSBuild को कमांड लाइन के माध्यम से बंद करने का कारण बनते हैं, तो इस कमांड में "/ nr: false" ध्वज को जोड़ने का प्रयास करें। लेकिन फिर से, अधिक विशिष्ट विवरण के लिए पिछला उत्तर देखें।


स्नैप, मुझे VS2015 अपडेट 2 में वही समस्या है - MSBuild, exe प्रक्रिया को फिर से बनाने से पहले टास्कमैन में मारे जाने की आवश्यकता है।
निक राइट

ऊपर जोश के उत्तर में लेख लिंक विजुअल स्टूडियो और MSBuild प्रक्रिया (MSBUILDDISABLENODEREUSE = 1) के भीतर नोड पुन: उपयोग को अक्षम करने के लिए एक सिस्टम पर्यावरण चर का उपयोग करने का सुझाव देता है - यह मेरे लिए काम करता है।
निक राइट

2

मैं आखिर इसे कैसे ठीक करूं। हम पहले डिबग के बाद डिबग जारी क्यों नहीं रख सकते क्योंकि पहला डिबग अभी भी चल रहा है। ताकि, पहले डिबग के बाद, आपको कार्य प्रबंधक -> प्रक्रिया टैब -> [आपकी परियोजना का नाम exe] समाप्त होने की प्रक्रिया को समाप्त करने की आवश्यकता है।

इससे मेरा काम बनता है :)


वाह, धन्यवाद आदमी, बिल्कुल मेरी समस्या। जैसा कि यह exe चलाते समय मेरे लिए उपयोगकर्ता का पासवर्ड पूछता है, पहली बार यह आग नहीं लगी थी। जब मैं प्रक्रिया सूची में उस ऐप को हटाने की कोशिश करता हूं और फिर फिर से डिबग करता हूं, तो यह त्रुटिपूर्ण रूप से काम करता है।
चंद्रप्रकाश

2

@ ज्योफ ( https://stackoverflow.com/a/25251766/3739540 ) का उत्तर अच्छा है, लेकिन यह त्रुटि कोड 1 को recompile पर फेंकता है।

यहाँ मेरे लिए क्या काम किया है (2> nul 1> nul अंत पर + बाहर निकलें 0):

(if exist "$(TargetDir)*old.pdb" del "$(TargetDir)*old.pdb") & (if exist "$(TargetDir)*.pdb" ren "$(TargetDir)*.pdb" *.old.pdb) 2>nul 1>nul
(if exist "$(TargetDir)*old.dll" del "$(TargetDir)*old.dll") & (if exist "$(TargetDir)*.dll" ren "$(TargetDir)*.dll" *.old.dll) 2>nul 1>nul
exit 0

2

यदि आप T4 टेम्पलेट डीबग कर रहे हैं , तो यह हर समय होता है। मेरा समाधान (एमएस फिक्स से पहले) सिर्फ इस प्रक्रिया को मारने के लिए होगा:

टास्क मैनेजर -> उपयोगकर्ता -> T4VSHostProcess.exe

यह प्रक्रिया केवल तब आती है जब आप T4 टेम्पलेट को डीबग करते हैं, न कि जब आप एक चलाते हैं।


2

इस मुद्दे से निश्चित रूप से छुटकारा पाने के लिए एक स्क्रिप्ट है:

REM   This script is invoked before compiling an assembly, and if the target file exist, it moves it to a temporary location
REM   The file-move works even if the existing assembly file is currently locked-by/in-use-in any process.
REM   This way we can be sure that the compilation won't end up claiming the assembly cannot be erased!

echo PreBuildEvents 
echo  $(TargetPath) is %1
echo  $(TargetFileName) is %2 
echo  $(TargetDir) is %3   
echo  $(TargetName) is %4

set dir=C:\temp\LockedAssemblies

if not exist %dir% (mkdir %dir%)

REM   delete all assemblies moved not really locked by a process
del "%dir%\*" /q

REM   assembly file (.exe / .dll) - .pdb file and eventually .xml file (documentation) are concerned
REM   use %random% to let coexists several process that hold several versions of locked assemblies
if exist "%1"  move "%1" "%dir%\%2.locked.%random%"
if exist "%3%4.pdb" move "%3%4.pdb" "%dir%\%4.pdb.locked%random%"
if exist "%3%4.xml.locked" del "%dir%\%4.xml.locked%random%"

REM Code with Macros
REM   if exist "$(TargetPath)"  move "$(TargetPath)" "C:\temp\LockedAssemblies\$(TargetFileName).locked.%random%"
REM   if exist "$(TargetDir)$(TargetName).pdb" move "C:\temp\LockedAssemblies\$(TargetName).pdb" "$(TargetDir)$(TargetName).pdb.locked%random%"
REM   if exist "$(TargetDir)$(TargetName).xml.locked" del "C:\temp\LockedAssemblies\$(TargetName).xml.locked%random%"

REM PreBuildEvent code
REM   $(SolutionDir)\BuildProcess\PreBuildEvents.bat  "$(TargetPath)"  "$(TargetFileName)"  "$(TargetDir)"  "$(TargetName)"

REM References:
REM   http://www.hanselman.com/blog/ManagingMultipleConfigurationFileEnvironmentsWithPreBuildEvents.aspx
REM   http://stackoverflow.com/a/2738456/27194
REM   http://stackoverflow.com/a/35800302/27194

स्क्रिप्ट को प्रत्येक वीएस प्रोजेक्ट प्री बिल्ड इवेंट से मंगवाना होगा।

$(SolutionDir)\BuildProcess\PreBuildEvents.bat  "$(TargetPath)"  "$(TargetFileName)"  "$(TargetDir)"  "$(TargetName)"

यहां छवि विवरण दर्ज करें


2
  1. प्रोजेक्ट गुण खोलें [मेनू> प्रोजेक्ट> गुण]
  2. "डीबग" टैब चुनें
  3. "दृश्य स्टूडियो होस्टिंग प्रक्रिया सक्षम करें" को अनचेक करें
  4. डिबगिंग शुरू करें [F5]
  5. आपको सुरक्षा चेतावनी मिलेगी, बस "ठीक है"। चल रहा है आवेदन देता है
  6. डिबगिंग बंद करो।
  7. डिबग टैब के तहत, विकल्प "दृश्य स्टूडियो होस्टिंग प्रक्रिया को सक्षम करें" चेक करें,
  8. अब, डिबगिंग शुरू करने का प्रयास करें, आपको फिर से त्रुटि नहीं दिखाई देगी

[मेरे लिए काम]


-2 पर ऐसा क्यों था? इसने मेरे लिए भी काम किया है। यह शून्य अर्थ करता है लेकिन हे, अगर यह काम करता है, तो यह काम करता है।
वाका ०२

क्या यह एक स्थायी समाधान है? यानी आपको हर बार ये 8 स्टेप्स करने होंगे?
आर्थर

vs17 में होस्टिंग प्रक्रिया का विकल्प नहीं है
जॉन डेमेट्रियौ

1

निम्नलिखित त्रुटि की तलाश में यह प्रश्न पहला परिणाम था:

फ़ाइल "..." की प्रतिलिपि नहीं बना सका क्योंकि यह नहीं मिली थी।

विजुअल स्टूडियो 2013 (अपडेट 3) में निर्माण करते समय।

समाधान: विजुअल स्टूडियो 2013 में "उत्पादकता पावर टूल्स" को अनइंस्टॉल करना।

https://connect.microsoft.com/VisualStudio/feedback/details/533411


टीएफएस से विरासत में मिली परियोजना के लिए बिल्ड पर कई बार यह त्रुटि हो रही है। सोचा ये तो था! स्थापित कार्यक्रमों और ऐड-इन्स में इसके लिए खोज की गई। यह बिजली उपकरण एप्लिकेशन नहीं मिल सकता है। यह कहां छिपेगा?
तानाशाह

1

मेरे मामले में यह Resharper Unit टेस्ट्स रनर (प्लस NUnit परीक्षण, MsTests के साथ ऐसी समस्या कभी नहीं थी)। प्रक्रिया को मारने के बाद, OS या VS2013 को फिर से शुरू किए बिना, प्रक्रिया को फिर से बनाने में सक्षम था


हाँ, देखोJetBrains.Resharper.TaskRunner.*
डन

1

मुझे एहसास नहीं था कि मैं अभी भी अपने डिबगर से जुड़ा हुआ था और उसी विजुअल स्टूडियो उदाहरण में निर्माण करने की कोशिश कर रहा था। एक बार जब मैंने डिबगर को बंद कर दिया तो मैं निर्माण करने में सक्षम था।


1

Vstest.executionengine.exe प्रक्रिया (तों) को मारना इस मुद्दे को मेरे लिए 90% हल करता है। अगर वह काम नहीं करता है, तो QTAgent32.exe भी मार रहा है और फिर प्रश्न कार्यों में परियोजना के लिए / बिन और / obj फ़ोल्डर को हटा रहा है।

यह मेरे काम के दिन का सबसे परेशान करने वाला हिस्सा है। :)


1

मेरे लिए यह अवास्ट एंटीवायरस था जिसने विज़ुअल स्टूडियो को फ़ाइल लिखने / पढ़ने / निष्पादित करने की अनुमति नहीं दी। इसलिए मुझे एंटीवायरस अपवर्जन सूची में विज़ुअल स्टूडियो 2010/2012 फ़ोल्डर जोड़ना पड़ा। और ठीक इसके बाद बाम ... यह काम करता है।


1

सुनिश्चित करें कि आप सभी इंस्टेंसेस wcfSvcHost को बंद करें और पुनः प्रयास करें। यह मेरे लिए काम किया!

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