CS0433 "टाइप 'X' त्रुटि पहले से ही A.dll और B.dll दोनों में कहां मौजूद है?"


81

जब मैं आंतरिक वेब सर्वर (IIS नहीं) का उपयोग करके विजुअल स्टूडियो 2008 SP1 से वेबऐप चलाता हूं तो मुझे उपर्युक्त त्रुटि प्राप्त होती है।

पूर्ण त्रुटि (स्रोत फ़ाइल Default.aspx.cs ):

कंपाइलर त्रुटि संदेश: CS0433: टाइप 'WebApplication3.Site1' दोनों 'c: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET फ़ाइलें \ root \ aa563bcb \ 59deedc0 \ App_Web_site1.master.cdcab7d2 में मौजूद है। muczzy9v.dll 'और' c: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ अस्थाई ASP.NET फ़ाइलें \ root \ aa563bcf \ 59deedc0 \ विधानसभा \ dl3 \ 44cba3cf \ 80dd34ed_6968ca01 \ WebApplication3.DLL '

पूर्व पूर्ण चेतावनी:

चेतावनी: CS0436: टाइप करें 'c: WebApplication3._Default' में 'c: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET फ़ाइलें \ root \ aa563bcf \ 595eedcc0 \ App_Web_default.aspx.cdcab7d2._tlwwdww। सीएस 'आयातित प्रकार' WebApplication3._Default 'के साथ' c: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET फ़ाइलें \ रूट \ aa563bcf \ 59ceedcc \ \ _l3 \ 44c3a3cf \ e096e61c_65c_0101_01_01_cf_cf_f के साथ संघर्ष .DLL 'पर क्लिक करें। 'C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ aa563bcf \ 59deedc0 \ App_Web_default.aspx.cdcab7d2._tlkwdos.0.cs' में परिभाषित प्रकार का उपयोग करना।

एक मध्यवर्ती फ़ाइल App_Web_default.aspx.cdcab7d2._tlkwdos.0.cs पर चेतावनी बिंदुओं का स्रोत :

Line 162:    
Line 163:    [System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()]
Line 164:    public class default_aspx : global::WebApplication3._Default, System.Web.IHttpHandler {
Line 165:        
Line 166:        private static bool @__initialized;

और मेरा सवाल: यह कहां से आता है?

Webapp (वेबसाइट नहीं!) में एक Default.aspx और एक Site1.Master है , कोई निर्भरता नहीं। वे asp:Labelपेज पर लगभग खाली हैं । पहले, इस वेबप ने ठीक काम किया। जब मैं Default.aspx.cs में किसी भी संदर्भ को मास्टर को हटाता हूं, तो सब ठीक हो जाता है। मास्टर के पास कुछ कोड ही हैं।

यह वास्तव में बहुत कम अग्नि-और भूल परीक्षण वेबैप्स में से एक है, इसलिए मैं कम देखभाल नहीं कर सका। लेकिन मैंने इसे पहले नहीं देखा था और अब मैं उत्सुक हूं कि मुझे क्या करना है, दूसरे को एक नए प्रोजेक्ट में कोड की नकल करना (सफाई समाधान मदद नहीं करता है)।

नोट: मैंने इस पोस्ट और कुछ अन्य लोगों को पढ़ा है, वे लागू नहीं होते हैं।


पुनश्च: मेरा मुख्य विचार यह है: कुछ अस्थायी अस्थायी को खराब कर दिया है, और यहाँ मेरा मुख्य तरीका बस अस्थायी dir को हाथ से हटाना और पुनर्निर्माण करना है। अभी तक कोशिश नहीं की गई है ("सबूत" को हटा देगा), अगर किसी के यहाँ गहरी जानकारी है।
हाबिल

जवाबों:


120

सिद्धांत

जब यह समस्या अनुप्रयोग में बग के कारण नहीं होती है (उदाहरण के लिए, डुप्लीकेट क्लास नाम):

यह समस्या अनुप्रयोग के प्रोजेक्ट में किए गए बदलाव के बाद प्रस्तुत होती है, जिसके परिणामस्वरूप एक नया बिल्ड (जैसे, कोड / संदर्भ / संसाधन परिवर्तन) होता है। यह समस्या इस नए बिल्ड के आउटपुट के भीतर झूठ प्रतीत होती है: विभिन्न कारणों से विजुअल स्टूडियो आपके एप्लिकेशन के obj / bin फ़ोल्डरों की संपूर्ण सामग्री को प्रतिस्थापित नहीं कर रहा है । इससे आपके एप्लिकेशन के बिन फ़ोल्डर की कम से कम कुछ सामग्री आउट ऑफ़ डेट हो जाती है।

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

उपाय

  1. Visual Studio को बंद करें
  2. आईरिससेट करें
  3. "अस्थाई ASP.NET फ़ाइलें" फ़ोल्डर के भीतर सभी फ़ोल्डर और फ़ाइलें हटाएं (पथ त्रुटि संदेश में संदर्भित है)
  4. अपमानजनक एप्लिकेशन के "ओब्ज" और "बिन" फ़ोल्डरों को हटा दें
  5. Visual Studio को पुनरारंभ करें और समाधान खोलें
  6. एक "क्लीन सोल्यूशन" का प्रदर्शन करें और उसके बाद एक "समाधान का पुनर्निर्माण करें"

व्याख्या

  • चरण 1-2: उन फ़ोल्डरों / फाइलों से रिसोर्स लॉक हटा दें जिन्हें हमें हटाने की जरूरत है।
  • चरण 3-4: पुरानी बिल्ड फ़ाइलों को हटा दें
  • चरण 5-6: बिल्ड फ़ाइलों के नए संस्करण बनाएँ

3
यह पद मूल स्वीकृत उत्तर को स्पष्ट रूप से संवर्धित करता है। अच्छी व्याख्या और स्पष्ट कदम, धन्यवाद!
हाबिल

1
@ जवाब देने के लिए कृपया इस पर विचार करें। क्योंकि केवल ASP.NET अस्थायी फ़ोल्डर को साफ करने से मदद नहीं मिलेगी!
अरिन ग़ज़री

2
यह मेरे साथ एक गैर-वेब परियोजना के साथ हुआ। बस बिन और obj फ़ोल्डरों को हटाने से यह तय हो गया।
मैट एच।

1
@ArinGhazarian, बिल्कुल! मुझे इस त्रुटि को साफ़ करने के लिए objऔर binफ़ोल्डरों को हटाना पड़ा ।
संतोष

शानदार व्याख्या के साथ शानदार जवाब। धन्यवाद!
कार्लोस रोड्रिगेज

39

W3svc को बंद करें और सब कुछ हटा दें c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\

जोड़ा

  • विंडोज 7 पर

    c:\Users\{username}\AppData\Local\Temp\Temporary ASP.NET Files\root\

  • पर आईआईएस सर्वर (64 बिट) यह भी हो सकता है। ढूंढें:

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root

    (यदि आप अपने सर्वर पर नया प्रयोग कर रहे हैं तो फ्रेमवर्क संस्करण द्वारा v4.0.30319 बदलें)


2
हाँ, यह शायद काम करेगा (ऊपर मेरी खुद की टिप्पणी देखें), लेकिन मुझे आशा है कि इसमें और अधिक अंतर्दृष्टि के लिए यह कहाँ से आया है और इसे रोकने के लिए क्या करना है (या यहां तक ​​कि, इसे प्रतिलिपि प्रस्तुत करने योग्य बनाते हैं)। मैं जानवर बल को हल करने के खिलाफ नहीं हूं, लेकिन ऐसा करने से पहले, मुझे यह समझना पसंद है कि क्या हो रहा है।
हाबिल

अतीत में मेरे साथ ऐसा हुआ है। मेरा मानना ​​है कि यह वीएस के साथ एक समस्या है जहां यह डिबगिंग सत्र के बाद या नया शुरू करने से पहले साफ नहीं होता है। पिछली बार मेरे साथ ऐसा हुआ था कि कुछ साल पहले वीएस 200 के साथ था।
एलेक्स पोल्खोवस्की

3
इसे उत्तर के रूप में स्वीकार किया गया क्योंकि यह एक समाधान है। हालांकि, यह "क्यों" नहीं समझाता है। यदि मुझे कोई बेहतर समाधान या वास्तविक कारण पता चलता है, तो मैं लाइमैन के उत्तर को अपडेट करूंगा या अपना स्वयं का जोड़ दूंगा।
हाबिल

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

@ वेनगोपाल ने क्या आपको कोई और उपाय सूझा, ऊपर समाधान मेरे लिए काम नहीं किया
Vbp

11

यदि आप App_Code में फ़ाइलें .cs फ़ाइलें रखते हैं और वेब अनुप्रयोग प्रोजेक्ट में संकलित करने के लिए अपनी बिल्ड कार्रवाई को बदल सकते हैं, तो ऐसा हो सकता है।

या तो सामग्री के रूप में App_Code में .cs फ़ाइलों के लिए बिल्ड एक्शन करें या App_Code का नाम बदलकर कुछ और करें। मैंने नाम बदल दिया है क्योंकि intellisense सामग्री के रूप में चिह्नित .cs फ़ाइलों को ठीक नहीं करेगा।

अधिक जानकारी के लिए http://vishaljoshi.blogspot.se/2009/07/appcode-folder-doesnt-work-with-web.html


आपके द्वारा प्रदान किया गया लिंक मेरे लिए समाधान था। मैंने अपनी सभी कक्षाओं को App_Code फ़ोल्डर से स्थानांतरित कर दिया और उन्हें कक्षाएं नाम के एक नए फ़ोल्डर में डाल दिया। फिर कक्षाओं के नामस्थान (नामस्थान का अंत = .App के बदले .assass) का नाम बदल दिया। और हां, App_Code फ़ोल्डर के सभी स्टेटमेंट और रेफरेंस को अपडेट करें।
krlzlx

आपका बहुत बहुत धन्यवाद। यह मुझे पागल कर रहा था
स्पिरिक

यह मेरे लिए भी तय है। धन्यवाद।
जॉन एचएच

9

अपने सभी एस्पक्स पृष्ठों और मास्टर पृष्ठों के इनहेरिट्स टैग को देखें। संभावना है कि दो आंशिक वर्ग हैं जिनका एक ही नाम है। एक को बदलें और recompile।

यहाँ कुछ अधिक जानकारी है:

http://blogs.msdn.com/b/carloc/archive/2007/06/12/compiler-error-message-cs0433-in-asp-net-2-0.aspx


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

5

मुझे इन सभी सुझावों के बाद भी समस्या थी। App_Code के अंदर कुछ वर्ग दो DLL के लिए संकलित किया जा रहा था। कुछ इस तरह (सरलीकृत):

warning CS0436: The type 'HcmDbGeographyModelBinder' in 

'<user_profile_dir>\AppData\Local\Temp\Temporary ASP.NET Files\temp\3b1ed8ee\11405e8e\App_Code.oqr0kusq.0.cs' 

conflicts with the imported type 'HcmDbGeographyModelBinder' in 

'<user_profile_dir>\AppData\Local\Temp\Temporary ASP.NET Files\temp\3b1ed8ee\11405e8e\assembly\dl3\ea0aa3ee\6022e6d5_2cc8cf01\HCM.Web.Backoffice.DLL'.

मैंने अभी "App_Code" फ़ोल्डर का नाम बदलकर "कोड" कर दिया है। यह MVC5 प्रोजेक्ट है, इसलिए वेब प्रोजेक्ट के रूट के अंदर .cs फ़ाइलों की सेवा करने में कोई समस्या नहीं होनी चाहिए।


4

App_Codeफ़ोल्डर से वर्ग फ़ाइलों को निकालना , और उन्हें सीधे वेबसाइट के नीचे रखकर, मेरे लिए इस समस्या को हल किया।


3
मुझे डर है कि वास्तव में कोई विकल्प नहीं है। Dll को सीधे रूट के नीचे रखने से कई सुरक्षा जोखिमों पर विचार किया जाता है (App_Code या बिन विशेष हैं और IIS / ASP.NET के माध्यम से दुर्गम हैं, जबकि रूट में कोई भी dll केवल डाउनलोड किया जा सकता है और .NET असेंबलियों को आसानी से नष्ट कर दिया जाता है)।
हाबिल

मैंने इसे ठीक करने के लिए ASP.NET MVC4 प्रोजेक्ट में मॉडल फ़ोल्डर में क्लास लगाई।
DShook

4

यह तब भी हो सकता है जब आपके ASPX फ़ाइल में TagPrefix की डुप्लिकेट हो।

यह इस त्रुटि का कारण होगा ...

<%@ Register Src="Control1.ascx" TagName="Control1" TagPrefix="uc1" %>

<%@ Register Src="Control2.ascx" TagName="Control2" TagPrefix="uc1" %>

आप इसे बस 2 "uc1" को "uc2" में बदलकर ठीक कर सकते हैं

निश्चित ...

<%@ Register Src="Control1.ascx" TagName="Control1" TagPrefix="uc1" %>

<%@ Register Src="Control2.ascx" TagName="Control2" TagPrefix="uc2" %>

1
यह वास्तव में कोई समस्या नहीं है, सभी नियंत्रणों के लिए टैगपरफिक्स एक ही हो सकता है
Spyros

@Spyros मैं असहमत हूं क्योंकि इसने मेरे लिए इस मुद्दे को तय कर दिया है। यह एक वर्ष से अधिक हो गया है और इस विषय में सब कुछ याद नहीं है, लेकिन इसे दूसरों को पढ़ने के लिए यहां छोड़ना सार्थक होगा।
जेसन गीगर

इस जवाब ने मेरी समस्या हल कर दी। यह अजीब था क्योंकि त्रुटि हमेशा नहीं हुई, केवल कुछ तैनाती के बाद। Spyros की तरह, मुझे विश्वास नहीं था कि यह समस्या को हल करेगा, मैंने कनेक्शन नहीं देखा। इसे पोस्ट करने के लिए धन्यवाद जेसन गीगर।
VFein

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

मेरी टिप्पणी को खरोंचें। त्रुटि ने अपना बदसूरत सिर फिर से दिखाया। ड्रॉइंग बोर्ड पर वापस।
VFein

4

संदर्भ: https://support.microsoft.com/en-in/help/2028526/building-an-asp-net-project-in-visual-studio-results-in-compiler-error

Visual Studio का उपयोग करके ASP.NET प्रोजेक्ट का निर्माण करते समय, आप निम्न के समान त्रुटि संदेश देख सकते हैं:

संकलक त्रुटि संदेश: CS0433: 'ASP.summary_common_controls_notes_ascx' प्रकार 'c: \ Windows \ Microsoft.NET \ फ्रेमवर्क64 \ v2.0.50727 \ Tem2 ASP.NET फ़ाइलें \ Book_Details \ abc12345 \ def8910 \ App_Web_msftxllll.dll दोनों में मौजूद है। c: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ अस्थाई ASP.NET फ़ाइलें \ Book_Details \ abc12345 \ def8910 \ App_Web_msfty456.dll '

विवरण: इस अनुरोध को पूरा करने के लिए आवश्यक संसाधन के संकलन के दौरान एक त्रुटि हुई। कृपया निम्नलिखित विशिष्ट त्रुटि विवरणों की समीक्षा करें और अपने स्रोत कोड को उचित रूप से संशोधित करें।

स्रोत त्रुटि: लाइन 100: लाइन 101:
नए नोट लाइन 102:
लाइन 103:
1450 लाइन 104:

सारांश।

स्रोत फ़ाइल: d: \ http \ post \ publisher \ default.aspx लाइन: 102

सामान्य परिदृश्य जहां यह त्रुटि हो सकती है, नीचे चर्चा की गई है

दृष्टांत 1

विवरण: एक सामान्य कारण तब होता है जब एक ही वेब एप्लिकेशन में दो असेंबली बिन फ़ोल्डर में दो क्लास परिभाषाएं होती हैं, लेकिन उनका समान वर्ग नाम होता है। यह हो सकता है अगर एक से अधिक Default.aspx को एक असेंबली में संकलित किया गया था। आमतौर पर, यह तब होता है जब मास्टर पृष्ठ (Default.master) और डिफ़ॉल्ट ASPX पृष्ठ (Default.aspx) दोनों एक _Default वर्ग की घोषणा करते हैं। समाधान: मास्टर पृष्ठ का वर्ग नाम (ज्यादातर मामलों में _Default से) बदलें और परियोजना का पुनर्निर्माण करें। वर्गों के बीच किसी भी नामकरण संघर्ष को हल करना महत्वपूर्ण है।

दृश्य २

विवरण: प्रोजेक्ट द्वारा उपयोग किए गए असेंबली संदर्भ के लिए फ़ोल्डर पथ निर्दिष्ट करने के लिए Visual Studio में संदर्भ पथ का उपयोग किया जाता है। यह संभव है कि पथ में एक विधानसभा होती है जिसमें समान वर्ग नाम होता है। ऐसा हो सकता है कि एक ही असेंबली में संभवतः एक से अधिक संदर्भ जोड़े गए हों (संभवतः भिन्न संस्करण या नाम) एक नामकरण संघर्ष के कारण।
समाधान: पुराने संस्करण का संदर्भ निकालें। ऐसा करने के लिए, Visual Studio में अपनी वेब साइट पर राइट-क्लिक करें और गुणों में "संदर्भ" जांचें।

परिदृश्य 3

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

दृश्य 4

विवरण: जब web.config में बैच विशेषता True पर सेट होती है, तो जब आप पहली बार किसी फ़ाइल तक पहुंचते हैं, तो आवश्यक संकलन के कारण होने वाली देरी को समाप्त कर देता है। ASP.NET एक बैच मोड में सभी अन-संकलित फ़ाइलों को precompiles, जो पहली बार फ़ाइलों को संकलित करने में देरी का कारण बनता है। बैच संकलन बंद करने से आवेदन में मौजूद नकाबपोश संकलन त्रुटियों का खुलासा हो सकता है लेकिन रिपोर्ट नहीं की जाती है। हालाँकि इस मुद्दे के लिए अधिक महत्वपूर्ण बात यह है कि ASP.NET अलग-अलग असेंबली में अलग-अलग .aspx / .ascx फ़ाइलों को एक ही असेंबली में डायनामिक रूप से संकलित करने के लिए कहता है। हल: web.config में अनुभाग में बैच = गलत सेट करें। इसे एक अस्थायी समाधान माना जाना चाहिए क्योंकि संकलन अनुभाग में गलत = दृश्य स्टूडियो में आवेदन के लिए बिल्ड समय पर महत्वपूर्ण प्रदर्शन प्रभाव पड़ता है।

परिदृश्य 5

विवरण: ASP.NET अनुप्रयोग के लिए web.config फ़ाइल को संशोधित करना या बिन फ़ोल्डर में एक फ़ाइल को बदलना (जैसे जोड़ना, हटाना, या नाम बदलना) AppDomain को पुनरारंभ करने का कारण बनता है। जब ऐसा होता है तो सभी सत्र स्थिति खो जाती है और कैश की गई वस्तुओं को कैश से हटा दिया जाता है क्योंकि वेबसाइट पुनः आरंभ होती है। यह संभव है कि समस्या वेब अनुप्रयोग में असंगत स्थिति के कारण हो। समाधान: ट्रिगर AppDomain को web.config फ़ाइल को छूकर (संपादित करके) पुनः आरंभ करें।

परिदृश्य 6

विवरण: आप App_Code फ़ोल्डर में स्रोत कोड स्टोर कर सकते हैं, और यह स्वचालित रूप से रन टाइम पर संकलित किया जाएगा। परिणामी असेंबली वेब अनुप्रयोग में किसी अन्य कोड के लिए सुलभ है। App_Code फ़ोल्डर इसलिए बिन फ़ोल्डर की तरह काम करता है, सिवाय इसके कि आप संकलित कोड के बजाय इसमें स्रोत कोड स्टोर कर सकते हैं। जब स्रोत फ़ाइल में कोई परिवर्तन होता है तो वर्ग को फिर से जोड़ दिया जाएगा। यदि एक पुरानी विधानसभा के कारण संघर्ष होता है तो एक recompile मजबूर करने से समस्या का समाधान हो सकता है। समाधान: बिन या App_Code फ़ोल्डरों में एक फ़ाइल को पूर्ण पुनर्संयोजन ट्रिगर करने के लिए स्पर्श करें।


अंगूठे के एक नियम के रूप में, मैं आमतौर पर पेश किए गए सरलतम समाधानों का प्रयास करके शुरू करता हूं। ऊपर दिए गए परिदृश्य 6 से निम्नलिखित ने मेरे लिए समस्या का समाधान किया: "समाधान: एक पूर्ण पुनर्संयोजन को ट्रिगर करने के लिए बिन या App_Code फ़ोल्डरों में एक फ़ाइल को स्पर्श करें।"
cjo30080

2

यह मेरे Web.Config में त्रुटि के कारण मेरे साथ हुआ

<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

Sytem.Web.Helpers(MVC 3 इस परियोजना पर किया जा रहा है) 1.0.0.0 बजाय 3.0.0.0 में बताया गया था।

क्योंकि IIS जीएसी में देखे गए स्थानीय फ़ोल्डर में संदर्भ नहीं पा सका और दो अलग-अलग संस्करण मिले। इसे सही संदर्भ में इंगित करने के बाद IIS ने स्थानीय dll पाया और इसका उपयोग GAC को खोजने के बजाय किया।


2

ऐसा तब हो सकता है जब एक ही क्लासनाम कई .aspx.csफाइलों में निर्दिष्ट किया जाता है, यानी जब दो पेज अलग-अलग फ़ाइल नाम से बनाए जाते हैं, लेकिन गलती से एक ही क्लासनाम हो जाता है।

// file a.aspx
public partial class Test1: System.Web.UI.Page

// file b.aspx
public partial class Test1: System.Web.UI.Page

वेबप्लिकेशन का निर्माण करते समय यह एक चेतावनी देता है, लेकिन एप्लिकेशन चलता है, हालांकि, एप्लिकेशन प्रकाशित करने के बाद अब काम नहीं करता है और ओपी के प्रश्न में उल्लिखित अपवाद को फेंक देता है।

यह सुनिश्चित करना कि दो वर्गनाम कोई ओवरलैप न करें समस्या का हल करता है।


इस पर गौर करने के लिए टीएक्स। लेकिन आपके उदाहरण के मामले में, आप उपयोग करते हैं partial class, जो कि वास्तव में एक सामान्य तरीका (एक ही तरीका) है कि एक वर्ग को कई फाइलों में विभाजित किया जाए, उस स्थिति में आपको उसी नाम का उपयोग करना होगा
हाबिल

यह एक वेब साइट में मेरे मुद्दे के करीब हो रहा है (एप्लिकेशन नहीं।) Temp फ़ोल्डर्स को साफ़ करना, App_Code से बाहर की चीजों को स्थानांतरित करना और अन्य सुझावों ने काम नहीं किया। जब तक मैंने अपने मास्टर पेज के लिए .cs कोड-बैक फ़ाइल को नहीं देखा था, मैंने देखा कि फ़ाइल का नाम वर्ग के नाम से मेल नहीं खाता था, जो अभी भी डिफ़ॉल्ट था MasterPage। एक बार जब मैंने राइट-क्लिक मेनू में एक क्लास का नाम बदला (तो सभी संदर्भ भी अपडेट होंगे), त्रुटि अंततः गायब हो गई। मैं केवल अनुमान लगा सकता हूं कि मेरा मास्टर पृष्ठ System.Web.UI.MasterPageवर्ग के साथ संघर्ष कर रहा था ।
एंड्रयू एस

2

मुझे एक और कारण मिला है: प्रोजेक्ट में आइकन के लिए उपयोग किए जाने वाले विभिन्न संस्करण और प्रोजेक्ट में संदर्भ। वस्तुओं को किसी रूप में सम्मिलित करने के बाद, त्रुटि शुरू हो गई।


1

"सॉल्यूशन सॉल्यूशन" इसके बाद "रिबिल्ट सॉल्यूशन" इसे ठीक करने के लिए लगता है।


जैसा कि मैंने सवाल में बताया है, कम से कम मेरी स्थिति में, समाधान को साफ करने से मदद नहीं मिली। कारण यह है कि यह मदद नहीं करता है कि त्रुटि अस्थायी ASP.NET फ़ाइलों (जैसा कि 1 और 2 के उत्तर में समझाया गया है) के कारण होता है, जिसे "स्वच्छ समाधान" निष्पादित करते समय साफ नहीं किया जाता है।
हाबिल

0

मैंने पृष्ठ चिह्न में मास्टरटाइप को संदर्भित करने के तरीके को बदलते हुए समाप्त किया।

मैं बदल गया: <%@ MasterType VirtualPath="~/x/y/MyMaster.Master" %> करने के लिए<%@ MasterType TypeName="FullyQualifiedNamespace.MyMaster" %>

यहाँ देखें जानकारी के लिए।

आशा है कि यह किसी को बाहर करने में मदद करता है।


0

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


0

हमारे मामले में, कारण IIS में साइटों के .dll संस्करणों में अंतर था। उन्हें IIS में एक-दूसरे के नीचे रखा जाता है, जिससे आप दूसरे को एक उपडोमेन तक पहुँचा सकते हैं। यह पहले web.config से विरासत में मिला है, और अगले web.config के साथ संयोजन करके, यह विफल हो गया, जिसमें mvc.dll के विभिन्न संस्करण हैं।


0

मुझे भी ऐसी ही समस्या थी। यह मेरा समाधान है: अलग-थलग वर्ग रखें जिन्हें किसी भी फ़ोल्डर के लिए संपत्ति [Build Action]सेट [Compile]करने की आवश्यकता होती है App_Codeजैसे Application_Codeकि App_Codeफ़ोल्डर को एक अलग असेंबली के रूप में संकलित किया जाएगा, एक ही वर्ग 2 विधानसभाओं में संकलित होगा।


0

मैं एक ही वर्ग के नाम वाले दो ascx नियंत्रणों के साथ एक ही मुद्दा था:

Control1: <% @ नियंत्रण भाषा = "C #" ClassName = " myClassName " AutoEventWireup = "true ...> Control2: <% @ नियंत्रण भाषा =" C # "ClassName =" myClassName = "AutoEventWireup =" true ...>

मैंने इसे केवल कक्षा का नाम बदलकर तय किया:

Control1: <% @ नियंत्रण भाषा = "C #" ClassName = " myClassName1 " "AutoEventWireup =" true ...> Control2: <% @ नियंत्रण भाषा = "C #" ClassName = " myClassName =" AutoEventWireup = "true ...>


0

समाधान बंद करें और इसे फिर से खोलें, फिर दोहरीकरण के लिए प्रोजेक्ट संदर्भ देखें :

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

यह तब हो सकता है यदि आप NuGet का उपयोग कर रहे थे और DLLs संदर्भ स्थान को बदल दिया था। इसे ठीक करने के लिए आपको मैन्युअल रूप से प्रविष्टियों को हटाने वाली प्रोज फाइल को संपादित करना होगा, जैसे:

  <Import Project="..\packages\CefSharp.WinForms.53.0.0\build\CefSharp.WinForms.targets" Condition="Exists('..\packages\CefSharp.WinForms.53.0.0\build\CefSharp.WinForms.targets')" />

यह देखें कि ये "<आयात" संदर्भ प्रोज फ़ाइल में विभिन्न स्थानों पर दिखाई दे सकते हैं।


0

एक सुपर त्वरित और आसान फिक्स दृश्य स्टूडियो के अविश्वसनीय अंतरंगता का दुरुपयोग करने के लिए अस्थायी रूप से कक्षा को कहीं संदर्भित करके है।

उदाहरण:

System.Runtime.CompilerServices.ExtensionAttribute x = null;

जब आप कर्सर को लाइन पर बना रहे हों या उसे हटा रहे हों तो आप निम्न त्रुटि देख सकते हैं:

'System.Runtime.CompilerServices.ExtensionAttribute' 'C: \ Program Files \ Reference Assemblies \ Microsoft \ फ्रेमवर्क \ v3.5 \ System.Core.dll' दोनों में मौजूद है

यह आपको दोनों स्रोतों को तुरंत संघर्ष का कारण बताता है।

System.Core.dll वह .dll फ़ाइल है जिसे आप रखना चाहते हैं, इसलिए दूसरे को हटा दें।

मुझे मेरा अंदर बैठा हुआ पाया bin निर्देशिका , लेकिन यह परियोजना में कहीं और हो सकता है।

तथ्य की बात के रूप में यह ध्यान देने योग्य है, क्योंकि चूंकि binनिर्देशिका को टीएफएस परिवर्तन-सेट के हिस्से के रूप में शामिल नहीं किया जा सकता है, यह समझा सकता है कि आपके परिवर्तनों की जाँच आपकी टीम के अन्य सदस्यों के लिए समस्या का समाधान क्यों नहीं करती है।


0

मैं एक पुराने asp.net (v 1 या 2) वेब साइट को एक वेब एप्लिकेशन के रूप में .net 4.5 के तहत चलाने के लिए परिवर्तित कर रहा हूं।

मेरा समाधान उपयोगकर्ता नियंत्रण इवेंट हैंडलर प्रतिनिधियों को स्थानांतरित करना था जो एक अलग भौतिक फ़ाइल में समस्या पैदा कर रहे थे:

//move this line to a new physical file:
public delegate void LocationSearchedEventHandler( object sender );

public partial class controls_Drives_LocationAddPanel : UserControl
{
    public event LocationAddedEventHandler LocationAdded;
    protected virtual void OnLocationAdded(LocationAddEventArg e)
    {

0

इसके कई कारण हैं। और ऊपर वर्णित अधिकांश विभिन्न परिदृश्यों पर लागू होते हैं। मैंने जो नोट किया है वह यह है कि त्रुटि तब होती है जब प्रमाणीकरण 'कुछ नहीं' के अलावा किसी और चीज़ के लिए सेट होता है। अपने परीक्षण उद्देश्यों के लिए मैं इसे बंद कर दूंगा और यह काम करेगा।


0

CS0433विशेष रूप से, त्रुटि URL पर क्लिक करने पर पहली Google हिट पर क्लिक करने पर मुझे यहाँ पुनः निर्देशित किया गया ,

The type 'Package' exists in both 'Windows... Version=N.N.N.N, Culture=neutral, PublicKeyToken=null, ContentType=Windows...' and 'Windows..., Version=255.255.255.255, Culture=neutral, PublicKeyToken=null, ContentType=Windows...'

इसे ठीक करने के लिए मैंने जो कुछ भी किया था, उसे रेखांकित करने के बजाय, मैं आपको बताता हूं कि मैंने ऐसा क्या किया, जिसने इसे तोड़ दिया। मैं एक रेपो के लिए NuGet संकुल को अद्यतन करने के लिए गया था जिसे एक कोड अपडेट की आवश्यकता थी। पैकेज बहुत पुराने थे (1 वर्ष या तो) और मैंने शुरू में इसे करने की कोशिश की थी, इसे सी # प्रोजेक्ट के लिए अपडेट किया गया था।

उस प्रक्रिया को शुरू करने और इस त्रुटि का सामना करने के बीच कुछ समय, मैंने किसी तरह सीएलएन परियोजनाओं के संस्करण को उस एसएलएन में लक्षित करने के लिए डाउनग्रेड किया 15063। मैंने यह भी देखा कि C # प्रोजेक्ट में नया TargetPlatformMinVersionऔर TargetPlatformVersionनया दोनों सेट था10.0.17134.0

केवल एक चीज जो मुझे "ठीक" TargetPlatformMinVersionकरनी थी, TargetPlatformMinVersionवह सी # प्रोजेक्ट के लिए उच्चतर संस्करण में बदल गई थी । C ++ प्रोजेक्ट को या तो संस्करण में संशोधित करने से व्यवहार में बदलाव नहीं आया। मुझे यकीन नहीं है कि इसने अचानक काम करना बंद कर दिया है, लेकिन उम्मीद है कि इसी तरह से अवरुद्ध किसी व्यक्ति को समान रणनीतियों का उपयोग करके अचार से बाहर निकाला जा सकता है।


0

2Toad के उत्तर को आज़माने के अलावा, मैंने विज़ुअल स्टूडियो को बंद करने और अपने .vs फ़ोल्डर को हटाने का काम भी समाप्त कर दिया। उसके बाद, सब कुछ सही ढंग से बनाया गया।

संयोग से, मैं जिस त्रुटि का सामना कर रहा था, उसने मेरे Temp फ़ोल्डर को बिल्कुल भी निर्दिष्ट नहीं किया था, लेकिन कुछ और संदर्भित था जो स्पष्ट रूप से सिस्टम-जनरेट किया गया था। मैंने विशिष्ट त्रुटि को बचाने के लिए उपेक्षा की: \


0

यदि कोई अन्य समाधान काम नहीं करता है, तो बस उस समस्या के वंशानुक्रम वर्ग का नाम बदलकर aspx फ़ाइल और aspx.cs फ़ाइल को एक नया नाम दें, फिर समाधान का पुनर्निर्माण करें। तब समस्या को हल किया जाएगा। यह केवल मेरे लिए काम किया।

जैसे:

इस aspx फ़ाइल में निम्नलिखित बदलाव को Defaultnew वर्ग के नाम में बदलें

<%@ Page Title="" Language="C#"  MasterPageFile="~/Main.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Defaultnew" %>

aspx.cs फ़ाइल में उसी वर्ग का नाम बदलें जैसा कि aspx फ़ाइल में उपयोग किया गया है

using System;
using System.Collections.Generic;
using System.Web;

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