2009-06-17 15 views
42

मैं इस त्रुटि बार-बार मिलती है, जब ASP.Net अनुप्रयोगों के विकास:ASP.Net नहीं बना सकते/छाया प्रतिलिपि

Cannot create/shadow copy 'XXXXX' when that file already exists 

कहाँ XXXXX एक यादृच्छिक DLL है। आम तौर पर डीएलएल माइक्रोसॉफ्ट एंटरप्राइज़ लाइब्रेरी से डीएलएल में से एक है, लेकिन यह भिन्न होता है।

यह वास्तव में यादृच्छिक है, और यह बहुत निराशाजनक है। मैं त्रुटि प्राप्त किए बिना घंटों तक जाऊंगा, और फिर हर 10-20 मिनट में यह त्रुटि प्राप्त करें।

मैंने कई समाधान देखा है। उदाहरण के लिए, this question। मैंने क्लीन सॉल्यूशन विकल्प का उपयोग करने का प्रयास किया है, और मैंने बस अपने स्थानीय आईआईएस को फिर से शुरू कर दिया है। हालांकि, यह अभी भी एक ही यादृच्छिक लेकिन लगातार आवृत्ति पर होता है।

मैं भी देखा है कि कई लोगों को कॉन्फ़िग फ़ाइल में इस विकल्प का उपयोग करने का उल्लेख:

<hostingEnvironment shadowCopyBinAssemblies="false" /> 

हालांकि, अन्य लोगों में यह समस्या पैदा करने जा रहा है का उल्लेख किया है, और यह निश्चित रूप से उत्पादन में नहीं किया जाना चाहिए।

तो, क्या मुझे बस छोड़ देना चाहिए और छाया को कॉपी करने की कोशिश करनी चाहिए? (और सुनिश्चित करें कि इस परिवर्तन को अन्य वातावरण में कॉपी न करें।) क्या मैं अकेला हूं जो इस मुद्दे को अक्सर प्राप्त करता है?

नोट: मैं विजुअल स्टूडियो 2008

+1

मुझे बार-बार यह त्रुटि मिल रही है और मुझे आश्चर्य है कि माइक्रोसॉफ्ट ने अभी भी इसे ठीक नहीं किया है। –

+2

हम इस पर सक्रिय रूप से काम कर रहे हैं। यह पुन: पेश करना वाकई मुश्किल है, इससे समस्या को और अधिक कठिन बना दिया जाता है। – RickAndMSFT

+1

मैंने कनेक्ट बग को पुनः सबमिट कर दिया है, बस इसे एमएस ग्राहकों द्वारा ट्रैक किया जा सकता है। https://connect.microsoft।com/VisualStudio/फीडबैक/विवरण/786247/नहीं बना सकते-छाया-प्रति-xxxxx-when-that-file-already- –

उत्तर

23

निम्न उपायों की this now defunct connect issue से आते हैं:

  • अपने web.config फ़ाइल के <system.web> अनुभाग के लिए <hostingEnvironment shadowCopyBinAssemblies="false" /> जोड़ें।
  • समस्या मिलने पर कैसिनी को पुनरारंभ करें
  • यदि आपको त्रुटि मिलती है, तो डीबगर बंद करें, समाधान और "साफ समाधान" पर राइट क्लिक करें। डीबगर को पुनरारंभ करने के लिए F5 दबाएं। यह वास्तव में कष्टप्रद है क्योंकि इसमें मेरे लिए 50% असफल दर है और आपको लगता है कि स्वच्छ समाधान के लिए मैन्युअल विकल्प नहीं होना चाहिए! यह $ 1200 पीओएस आवेदन स्वचालित रूप से आपके लिए इसे साफ करना चाहिए!
  • यहां एक और कामकाज है जो कुछ लोगों के लिए अधिक आकर्षक हो सकता है, गैरी फरर (http://blogs.claritycon.com/blogs/gary_farr/archive/2007/03/09/2888.aspx) की सौजन्य।
  • अपने पूर्व निर्माण की घटनाओं के लिए निम्न जोड़ें:

    IF EXIST $(TargetPath).LOCKED (del $(TargetPath).LOCKED) ELSE (IF EXIST $(TargetPath) (move $(TargetPath) $(TargetPath).LOCKED))

  • का संभावित हल करता है मेरे लिए काम करने के बजाय का उपयोग कर "बिल्ड" उपयोग "समाधान बनाएँ"

  • के बाद की है एक सफल निर्माण, मैं दस की गिनती करता हूं, फिर मैं अपना वेबफॉर्म रीफ्रेश करता हूं।
  • मुझे पता चला है कि आईआईएस के खिलाफ एएसपी.नेट पुनः पंजीकरण करके समस्या "दूर हो जाती है" - मुझे तब से समस्या नहीं है। आपको कमांड लाइन पर निम्न को चलाने की आवश्यकता होगी:
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i। यह संभावना से अधिक सभी के लिए काम नहीं करेगा - यह एक जटिल समस्या है।
  • वीएस पुनरारंभ करें।
  • समाधान की सफाई करते समय, उन फ़ाइलों के बारे में कुछ चेतावनियां जारी की गईं जिन्हें हटाया नहीं जा सका। इन फ़ाइलों में उनके पढ़ने-योग्य संपत्ति सेट थे। इन फ़ाइलों की संपत्ति को पढ़ने/लिखने के लिए सेट करने के बाद, समस्या हल हो गई थी।
  • पुनः प्रारंभ आईआईएस

संपादित करें: आइटम an old version of the page (archive.org के सौजन्य से) से लिया गया।

+14

लिंक के लिए धन्यवाद, लेकिन कुछ स्थानांतरण ले लिया। जो मेरे लिए काम करता था वह था "सफल निर्माण के बाद, मैं दस की गिनती करता हूं, फिर मैं अपना वेबफॉर्म रीफ्रेश करता हूं।" (हालांकि मुझे केवल 2 तक गिना जाता है) –

+1

मेरे लिए उस लिंक से सबसे अच्छा फिक्स "आईआईएस पुनरारंभ करें" था। मैं अपने देव वेब सर्वर के रूप में कैसिनी के बजाय स्थानीय आईआईएस चला रहा हूं। चीयर्स। अनुलेख मैं वीएस -2010 का उपयोग कर रहा हूं, इसलिए उन्होंने अभी भी इसे ठीक नहीं किया है। – LordScree

0

मैं इस मुद्दे को बार-बार हो रही थी जब एक आयातित DLL जो हम बनाया के साथ काम करने का उपयोग कर रहा हूँ।

रोकने के प्रयास विफल हो रहे हैं, और यहां तक ​​कि विभिन्न समस्याओं को भी पेश किया गया है, लेकिन जब भी यह हुआ तो मैं केवल पुनर्निर्माण समाधान करूँगा और समस्या उस निर्माण के लिए तुरंत गायब हो जाएगी।

इसके अलावा, मैंने विजुअल स्टूडियो 2002 पर काम करने के बाद से समस्या को नहीं देखा है। 2008 में यह समस्या नहीं है जिसे मैं जानता हूं, न ही 2005. क्या आप पुराने वीएस का उपयोग कर रहे हैं?

+0

मैं विजुअल स्टूडियो 2008 –

+0

ठीक से उपयोग कर रहा हूं, तो संस्करण के साथ कुछ भी नहीं करना है। यदि आप पुनर्निर्माण समाधान करते हैं तो आपका आवेदन चल रहा है? – CRice

+0

हां, मैं 10-20 मिनट के लिए समाधान, पुनर्निर्माण और काम "साफ" करता हूं। फिर मुझे फिर से त्रुटि मिलती है और दोहराना पड़ता है। –

1

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

+1

यह मेरे लिए काम करता है! – skhro87

0

डिज़ाइन मोड पर जाएँ और फिर राइट क्लिक करें और ब्राउज़र में मारा देखने के लिए, इस मुद्दे को जाना होगा दूर अनिल मदन

+8

जो सिगरेट धूम्रपान करने के समान ही काम करता है और समस्या – RickAndMSFT

0

पूर्व निर्माण घटना कमांड लाइन, जो मूल रूप से दृश्य के भीतर DLL बातें बताता में ये पंक्तियां जोड़ें स्टूडियो:

IF EXIST $(TargetPath).LOCKED (del $(TargetPath).LOCKED) 
    ELSE (IF EXIST $(TargetPath) (move $(TargetPath) $(TargetPath).LOCKED)) 

पुन: संकलित करें और DLL त्रुटि की प्रतिलिपि बनाने में आपकी असमर्थता नहीं होगी।

1

मेरी स्थिति में केवल iisreset काम किया।

39

10-30 सेकंड के बीच कहीं और प्रतीक्षा करें ताज़ा करें। किसी कारण से यह हमेशा मेरे लिए काम करता है।

+2

दूर जाएगी, यह काम करता है क्योंकि इस समस्या का मुख्य कारण वीएस में निर्माण प्रक्रिया समाप्त होने से पहले वेबपृष्ठ तक पहुंचने का प्रयास कर रहा है। – Zafar

+0

यह दिलचस्प है, ज़फर। क्या आपके पास उस पर कोई और जानकारी है? यह बग कभी-कभी मुझे पागल बनाता है! – joshcomley

+1

मुझे केवल एक चीज है जो मुझे पता है - जब आप निर्भर डीएलएल फाइलों को बनाने के लिए तैयार होने से पहले किसी वेबपृष्ठ तक पहुंचने का प्रयास करते हैं तो आपको यह त्रुटि मिलती है। खैर, यह मुझे लगता है कि त्रुटि के लिए एकमात्र मामला नहीं है, लेकिन यह सबसे लोकप्रिय है। – Zafar

5

बस विजुअल स्टूडियो को पुनरारंभ करें, जो मेरे लिए काम करता है।

0

आप इकाई की रूपरेखा का उपयोग करते हैं:

त्रुटि संदेश: "।/छाया प्रतिलिपि '' नहीं बना सकता जब कि फ़ाइल पहले से मौजूद"

समाधान: "। कुछ सेकंड प्रतीक्षा करें और पेज को ताज़ा"

अधिक जानकारी के लिए कृपया देखें: Advanced Entity Framework 6 Scenarios for an MVC 5 Web Application (12 of 12)

0

मैं एक ही मुद्दा हो रही थी, एक web.config मेरे लिए काम किया में इस कोड को रखकर।

<hostingEnvironment shadowCopyBinAssemblies="false" /> 
0

आप बस अपने पृष्ठ को ताज़ा करें (F5)।

0

इसे साफ़ करें और इसे फिर से बनाएं। यह मेरी मदद करता है और यह अक्सर मेरे लिए काम करता है

संबंधित मुद्दे

 संबंधित मुद्दे