कोडडॉम प्रदाता प्रकार "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider" स्थित नहीं हो सकता है


159

यह VS2015 का उपयोग कर एक WebApi परियोजना है।

प्रजनन के लिए कदम:

  1. एक खाली WebApi प्रोजेक्ट बनाएँ
  2. बदलें निर्माण पथ "बिन \" से "बिन \" डिबग \ "
  3. Daud

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

सब कुछ पूरी तरह से काम कर रहा है जब तक कि मैं बिल्ड बिन को "बिन \" से "बिन \ डीबग \" में नहीं बदल दूं। वास्तव में, "बिन \" के अलावा कोई भी आउटपुट पथ काम नहीं करेगा।

एक छोटी सी अतिरिक्त बात यह है कि, जब तक मैं "बिन \" में एक निर्माण छोड़ देता हूं, तब तक कहीं भी एक और आउटपुट पथ काम करेगा।

कृपया इसे हल करने के लिए सहायता प्रदान करें। मुझे लगता है कि वास्तविक तैनाती पर समस्या आएगी।


क्या मैं पूछ सकता हूं कि आपने अपने वेब एप्लिकेशन के आउटपुट पथ को क्यों बदल दिया है? धन्यवाद।
एक्स-माओ

यह अपवाद मेरे द्वारा हर बार हो रहा है जब मैं msbuild कॉमिलेशन के दौरान पहले से चलाए गए ASP.NET MVC ऐपेटॉन को रीफ्रेश करता हूं ।
निकोले कोस्तोव

मेरे साथ भी ठीक वैसा ही हुआ था। इसके बाद मैंने .dll पुस्तकालयों के एक जोड़े को संदर्भित किया। मैंने पुस्तकालयों की स्थापना रद्द करके और फिर से स्थापित करके इसे ठीक किया। और इस बात का कोई अंदाजा नहीं है कि ऐसा क्यों हुआ ..
Letie Techera

जवाबों:


127

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

इस समस्या को हल करने के लिए, आपको प्रोजेक्ट टेम्पलेट से रोज़लिन कंपाइलर को निकालना होगा । रोजलिन को हटाने से आपके कोड की कार्यक्षमता प्रभावित नहीं होनी चाहिए। इसने मेरे और कुछ अन्य प्रोजेक्ट्स (C # 4.5.2) के लिए ठीक काम किया, जिन पर मैंने काम किया।

निम्न चरण करें:

  1. नीचे दिखाए गए कमांड लाइन का उपयोग करके नुगेट पैकेज का पालन करें ( या आप रूट प्रोजेक्ट सॉल्यूशन पर राइट क्लिक करके और उन्हें हटाकर एनजीईटी पैकेज मैनेजर के जीयूआई का उपयोग कर सकते हैं )।

    PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
    PM> Uninstall-package Microsoft.Net.Compilers
  2. अपनी Web.Config फ़ाइल से निम्न कोड निकालें और IIS को पुनरारंभ करें । ( इस विधि का उपयोग केवल तभी करें जब चरण 1 आपकी समस्या का समाधान न करे। )

    <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>


4
अब मैं एक दिन के लिए "/ 'अनुप्रयोग में" सर्वर त्रुटि "पर अटक गया हूं। मैं विजुअल स्टूडियो 2015 में एक साधारण हैलो वर्ल्ड एप्लिकेशन को संकलित कर रहा हूं, और इसे एक वेब सर्वर पर तैनात कर रहा हूं, और यह त्रुटि हो रही है। ऊपर दिए गए <संकलक> लाइनों को हटाने से भी यह समस्या दूर हो गई। मैं जानना चाहता हूं कि यह कैसे होता है और क्या इसका बेहतर समाधान है। ) -: मैं यह काफी अविश्वसनीय है कि आप नहीं कर सकते समस्याओं से टकराने के बिना इस तरह से एक नमस्ते दुनिया एप्लिकेशन को तैनात है अपने जैसे एमएस किसी भी परीक्षण करना ही नहीं करते
user2728841

4
Roslyn को सक्षम करने के लिए आप ASP.NET अनुप्रयोगों में .NET कंपाइलर प्लेटफॉर्म ("रोज़लिन") को सक्षम करते हुए निम्नलिखित लेख देख सकते हैं। रोज़लिन ASP.NET में संकलन क्यों करते हैं? आपके ASP.NET अनुप्रयोग में नए रोसलिन कंपाइलर को सक्षम करने के परिणामस्वरूप दो मुख्य लाभ होंगे: * नई भाषा सुविधाओं के लिए समर्थन * संभावित रूप से बेहतर अनुप्रयोग स्टार्टअप / पूर्व-संकलन समय
vibs2006

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

@JensMander दोनों संकलन रनटाइम हैं। IIS में हमें रोज़लिन कंपाइलर को मैन्युअल रूप से सक्षम करने की आवश्यकता है। कृपया लेख के संबंध में मेरी पिछली टिप्पणी में लिंक देखें'Enabling the .NET Compiler Platform.
vibs2006

मेरे पास एक ही त्रुटि है, आखिरकार Microsoft के लिए नवीनतम पैकेज अपडेट किया गया। कोडकोड.प्रोएडर्स ।otNetCompilerPlatform मेरे लिए हल।
लाल

48

इस उत्तर की सलाह का पालन करने से सावधान रहें। जबकि यह समस्या को हल करता है, बाद की तारीख में यह अलग समस्या पैदा कर सकता है।

मुझे भी यही समस्या हुई। जाहिरा तौर पर .NET कंपाइलर को लोड नहीं किया गया था GAC। मैंने इसे हल करने के लिए क्या किया:

सबसे पहले, पैकेज प्रबंधक कंसोल प्रकार में:

PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

अब, किसी कारण के लिए Microsoft में अच्छे सज्जनों ने इसे हमारे लिए GAC में स्थापित नहीं करने का निर्णय लिया है। आप डेवलपर कमांड प्रॉम्प्ट और टाइपिंग को खोलकर इसे मैन्युअल रूप से कर सकते हैं:

gacutil -i "C:\*PATH TO YOUR APP CODE*\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll"

निष्कर्ष

Microsoft हर किसी को नगेट्स के साथ सब कुछ करने के लिए प्रोत्साहित करने की कोशिश करता है जो कि कभी-कभी बग्स के बिना ठीक हो सकता है जिसे आप नगेट सिस्टम के साथ चलाते हैं। अलग-अलग समाधानों पर एक ही परियोजना का उपयोग करने की कोशिश करें, गलती से (या नहीं) उनमें से एक पर उपयोग किए जाने वाले कई नगेट्स में से एक को अपडेट करें, और यदि आप अशुभ हैं तो आप देखेंगे कि जब आप दूसरे समाधान का निर्माण करने का प्रयास करते हैं तो मेरा क्या मतलब है। दूसरी ओर, जीएसी में फाइलें डालने से भविष्य की समस्याएं भी हो सकती हैं क्योंकि लोग भूल जाते हैं कि वे वहां क्या डालते हैं और फिर नए वातावरण की स्थापना करते समय वे इन फाइलों को शामिल करना भूल जाते हैं। दूसरा संभावित उपाय यह है कि फाइलों को 3 डी पार्टी डीएलएस के लिए एक केंद्रीय फ़ोल्डर में रखा जाए (भले ही यह कंपाइलर 3 पार्टी को कॉल करने के लिए अजीब हो), जो नए वातावरण सेट करते समय टूटे हुए संदर्भों की समस्या पैदा करता है। यदि आप GAC को dll स्थापित करने का निर्णय लेते हैं, सावधानी बरतें और याद रखें कि आपने ऐसा किया। यदि आप नहीं करते हैं, तो प्रत्येक प्रोजेक्ट के लिए नगेट को फिर से डाउनलोड करें और इसके कारण होने वाली सभी कष्टप्रद बगों को सहन करें (कम से कम तब होता था जब मैं अंत में इसके बीमार हो गया था और बस फाइलों को जीएसी में रखा था)। दोनों दृष्टिकोण आपको सिरदर्द दे सकते हैं और समस्याएं पैदा कर सकते हैं, यह सिर्फ एक सवाल है कि आप किन समस्याओं से निपटना पसंद करते हैं। Microsoft नगेट प्रणाली का उपयोग करने की अनुशंसा करता है, और आम तौर पर, एसओ में एक अज्ञात प्रोग्रामर की तुलना में उनकी बात सुनना बेहतर होता है, जब तक कि आप नगेट प्रणाली से पूरी तरह से बीमार नहीं होते हैं और जीएसी के साथ लंबे समय तक व्यवहार करते हैं, ताकि यह बेहतर विकल्प बन सके। तुम्हारे लिए। प्रत्येक प्रोजेक्ट के लिए फिर से नगेट डाउनलोड करें और इसके कारण होने वाली सभी कष्टप्रद बगों को सहन करें (कम से कम तब होता था जब मैं अंत में इसके बीमार हो गया था और बस फाइलों को जीएसी में रखा था)। दोनों दृष्टिकोण आपको सिरदर्द दे सकते हैं और समस्याएं पैदा कर सकते हैं, यह सिर्फ एक सवाल है कि आप किन समस्याओं से निपटना पसंद करते हैं। Microsoft नगेट प्रणाली का उपयोग करने की अनुशंसा करता है, और आम तौर पर, एसओ में एक अज्ञात प्रोग्रामर की तुलना में उनकी बात सुनना बेहतर होता है, जब तक कि आप नगेट प्रणाली से पूरी तरह से बीमार नहीं होते हैं और जीएसी के साथ लंबे समय तक व्यवहार करते हैं, ताकि यह बेहतर विकल्प बन सके। तुम्हारे लिए। प्रत्येक प्रोजेक्ट के लिए फिर से नगेट डाउनलोड करें और इसके कारण होने वाली सभी कष्टप्रद बगों को सहन करें (कम से कम तब होता था जब मैं अंत में इसके बीमार हो गया था और बस फाइलों को जीएसी में रखा था)। दोनों दृष्टिकोण आपको सिरदर्द दे सकते हैं और समस्याएं पैदा कर सकते हैं, यह सिर्फ एक सवाल है कि आप किन समस्याओं से निपटना पसंद करते हैं। Microsoft नगेट प्रणाली का उपयोग करने की अनुशंसा करता है, और आम तौर पर, एसओ में एक अज्ञात प्रोग्रामर की तुलना में उनकी बात सुनना बेहतर होता है, जब तक कि आप नगेट प्रणाली से पूरी तरह से बीमार नहीं होते हैं और जीएसी के साथ लंबे समय तक व्यवहार करते हैं, ताकि यह बेहतर विकल्प बन सके। तुम्हारे लिए।


40
यह जीएसी में होना चाहिए नहीं है। Nuget दृष्टिकोण के पीछे का संपूर्ण बिंदु यह है कि आपकी परियोजना होस्ट सिस्टम पर कुछ भी बदले बिना C # या VB.NET के एक विशिष्ट संस्करण का उपयोग करे। MSFT के डेमियन एडवर्ड्स के इस पोस्ट को देखें: blogs.msdn.microsoft.com/webdev/2014/05/12/…
सुधांशु मिश्रा

29
ये असेंबली GAC, अवधि में नहीं हैं। जीएसी में उन्हें रखने से अंतिम सिरदर्द हो जाएगा जब किसी को आपके कोड को बनाए रखने की आवश्यकता होती है, यह निर्धारित नहीं कर सकता कि गलत कंपाइलर का उपयोग क्यों किया जाता है।
EKW

5
-1 Microsoft टिप्पणियों के लिए। यह ऐसा है जैसे इन दिनों ऐसा करना अच्छा है। बीटीडब्लू, नगेट्स के बहुत सारे फायदे हैं जिन्होंने उन्हें बहुत लोकप्रिय बना दिया है जिसे आप आसानी से अनदेखा कर रहे हैं। अब सोचिए कि माइक्रोसॉफ्ट के सज्जन इस बारे में क्या सोचते होंगे।
Fabio Milheiro

2
@YuvalPerelman Microsoft पिछले 3-4 वर्षों में विनाशकारी सामान का एक बहुत कुछ करता है (जैसे दृश्य स्टूडियो को अस्थिर करना, बहुत कम गुणवत्ता वाले उत्पादों का उत्पादन करना)। कभी-कभी मैं यह भी प्रार्थना कर रहा हूं कि विकास विभाग के पूरे प्रबंधन को निकाल दिया जाएगा। हालाँकि यह निश्चित रूप से ऐसा नहीं है!
मैरिस

2
इस निर्भरता को GAC'ing करना सबसे भयानक चीज है जिसे मैंने थोड़ी देर में देखा है।
Svend

31

बस अपनी परियोजना के लिए अगला नगेट पैकेज जोड़ें - Microsoft.CodeDom.Providers.DotNetCompilerPlatform

एक ही समस्या थी।


बस थोड़ा सावधान रहें; यह web.config के भीतर 'कंपाइलर' को अधिलेखित करता है, इसलिए सुनिश्चित करें कि आप इंस्टॉल करने से पहले किसी भी कस्टम मान को सहेज लें।
रेडडरज

19

मुझे एक ही समस्या है कि मेरे ऐप ने Vs2013 में काम किया है लेकिन Vs2015 को अपडेट करने के बाद त्रुटि हो रही है।

  1. Vs2015 में, NuGet पैकेज मैनेजर खोलने के लिए प्रोजेक्ट के संदर्भ फ़ोल्डर पर राइट क्लिक करें
  2. ब्राउज़ टैब के तहत, "DotNetCompilerPlatform" की खोज करें और "Microsoft.CodeDom.Providers.DotNetCompilerPlatform" lib स्थापित करें

2
पैकेज प्रबंधक को खोलने के लिए परियोजना के संदर्भ फ़ोल्डर पर राइट-क्लिक करने के लिए धन्यवाद
garyh

3
पहले इसे अनइंस्टॉल करने की कोशिश करें, फिर इसे नूगेट में फिर से इंस्टॉल करें। मेरे लिए यही काम किया।
मैट

आप एक किंवदंती हैं
Mo D Genesis

16

मुझे पता है कि यह एक पुराना धागा है, लेकिन मैं DotNetCompilerPlatform.dll, f के संभावित संस्करण के मुद्दे को इंगित करना चाहता हूं। पूर्व। एक अद्यतन के बाद। कृपया जाँचें, यदि नई जेनरेट की गई Web.config फ़ाइल आपके जारी किए गए web.config के रूप में अलग है, विशेष रूप से system.codedom भाग में। मेरे मामले में यह 1.0.7 से 1.0.8 तक संस्करण परिवर्तन था। नया dll पहले ही सर्वर पर कॉपी हो चुका था, लेकिन मैंने पुराने web.config (कुछ सर्वर विशेष सेटिंग्स के साथ) को नहीं बदला:

<pre>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>
  </system.codedom>
</pre>

जब मैंने दो पंक्तियों को अद्यतन किया, तो त्रुटि गायब हो गई।


1
मैं DotNetCompilerPlatform समस्याएं आ रही हैं कि हर एक समय मैं इसे अद्यतन करें।
लैरीबुड

2
यदि आप संस्करण विशेषता को निकालते हैं, तो भी काम करेगा और अगले अद्यतन पर फिर से त्रुटि को रोकने के लिए।
मिगुएलस्लैव

एक ही समस्या मैं सिर्फ मुझे छोड़कर था कि मैं से अद्यतन 2.0.0करने के लिए था2.0.1
रोरी मैकक्रॉन

12

आपके रिप्रो स्टेप्स के अनुसार, मैंने यह माना कि एप्लिकेशन बनाने के बाद एप्लिकेशन की प्रॉपर्टी में आउटपुट पथ बदलना आपका एकमात्र बदलाव था। यह परिवर्तन केवल एक चीज है जो MSBuild के आउटपुट असेंबली को नए फ़ोल्डर में डालने के लिए Visual Studio को बताता है। रनटाइम के दौरान, हालांकि, ASP.Net को इस बात का कोई अंदाज़ा नहीं होगा कि उसे इस नए फ़ोल्डर से असेंबली को \ बिन फ़ोल्डर के बजाय लोड करना चाहिए।

यह उत्तर वेबएपीआई एप्लिकेशन के निर्माण आउटपुट निर्देशिका को बदलने का तरीका दिखाता है। उस पोस्ट में दिखाए गए सटीक त्रुटि को प्राप्त करने के लिए, आपको web.config में संपूर्ण <system.codedom> अनुभाग पर टिप्पणी करने की आवश्यकता है। और फिर आप आउटपुट पथ को बदलने के लिए निर्देशों का पालन कर सकते हैं।

आपके द्वारा अपना ऐप्लिकेशन-कार्य प्राप्त करने के बाद, आप तब <system.codedom> अनुभाग को अनइंस्टॉल कर सकते हैं। यदि आप अपने आवेदन में C # 6 नए वाक्यविन्यास का उपयोग नहीं करते हैं तो आप Microsoft.CodeDom.Providers.DotNetCompilerPlatform की स्थापना रद्द कर सकते हैं; अन्यथा, आप अपने पोस्ट-बिल्ड ईवेंट में निम्न कमांड लाइन जोड़ना चाह सकते हैं,

xcopy /Q /Y "$(TargetDir)roslyn\*.*" "$(TargetDir)..\roslyn\"

नया कोडडोम प्रदाता हमेशा "बिन में" \ "रसलिन" फ़ोल्डर की तलाश करता है। उपरोक्त कमांड एक वर्कअराउंड के रूप में काम करता है और आपके नए आउटपुट फोल्डर से \ bin फ़ोल्डर को \ बिन कॉपी करता है।

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


10

आसान तरीका - प्रोजेक्ट> NuGet पैकेज प्रबंधित करें ...> ब्राउज़ (टैब)> खोज इनपुट में यह सेट करें: Microsoft.CodeDom.Providers.DotNetCompilerPlatform

आप इस कंपाइलर को इंस्टॉल या अपडेट या अनइंस्टॉल या इंस्टॉल कर सकते हैं

DotNetCompilerPlatform


8

एक अन्य संभावित समाधान:

प्रशासक अधिकारों के साथ अपने विजुअल स्टूडियो इंस्टेंस को पुनः आरंभ करें

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


4

उत्पादन सर्वर पर प्रकाशित होने के बाद यह बंद हो गया। इसने मुझे यह त्रुटि दिखाई, इसका कारण यह था कि इसे सब फ़ोल्डर में तैनात किया गया था । IIS में मैंने सबफ़ोल्डर पर राइट क्लिक किया और "एप्लिकेशन में कनवर्ट करें" और इसके बाद यह काम किया।


आवेदन करने के लिए कन्वर्ट मैं सभी की जरूरत थी। (यह एक नई परियोजना थी जो पहले प्रकाशित नहीं हुई थी।)
पैट्रिक

एक सबफ़ोल्डर का उपयोग करना मेरा मुद्दा भी था, इसलिए मैं बेस फ़ोल्डर में चला गया और चीजें काम करने लगीं।
J_L

4

मेरे मामले में, यह तब हुआ जब मैंने आवेदन फ़ोल्डर की अनुमति बदल दी और खाता IIS_IUSRS हटा दिया गया। मैं IIS_IUSRS (IIS प्रबंधक-> YourWebApp -> संपादन अनुमति -> Add IIS_IUSRS) को एप्लिकेशन फ़ोल्डर और इसके काम में फिर से शामिल करने के बाद।


मैंने IUSR अनुमतियाँ जोड़ी थीं, लेकिन यह पर्याप्त नहीं थी। मुझे "IIS_IUSRS" जोड़ना पड़ा और फिर इसने काम किया।
zacharydl

3

यहां बताया गया है कि मैंने इसे कैसे हल किया:

  1. binफ़ोल्डर को प्रोजेक्ट निर्देशिका में हटा दिया गया ।
  2. पर क्लिक करें Build Solution। में VS2017 (व्यवस्थापक के रूप में चलाएँ)> बिल्ड> समाधान बिल्ड


2

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


2

फिर समस्या वापस आ गई। मैं दोनों की स्थापना रद्द Microsoft.CodeDom.Providers.DotNetCompilerPlatformऔर Uninstall-package Microsoft.Net.Compilersलेकिन कोई मदद करते हैं। फिर स्थापित - कोई मदद नहीं। साफ परियोजना और कोई मदद नहीं बनाई। सर्वर को कोई मदद नहीं मिली। फिर मैंने देखा कि प्रोजेक्ट को नवीनतम की आवश्यकता नहीं है जो वर्तमान में 1.0.5 है, लेकिन 1.0.3 है क्योंकि त्रुटि 1.0.3 संस्करण को लोड नहीं कर पाई। इसलिए मैंने इसके बजाय उस dll संस्करण को स्थापित किया और अब यह काम करता है।


1

ASP.NET bin/debugअसेंबली के लिए बिन के तहत या किसी भी सबफ़ोल्डर को नहीं खोजता है जैसे अन्य प्रकार के एप्लिकेशन करते हैं। आप निम्न कॉन्फ़िगरेशन का उपयोग करके रनटाइम को एक अलग स्थान पर देखने का निर्देश दे सकते हैं:

<configuration>
   <runtime>   
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin;bin\Debug;bin\Release"/>
      </assemblyBinding>
   </runtime>   
</configuration>

1

आपको अपने प्रोजेक्ट में "Microsoft.CodeDom.Providers.DotNetCompilerPlatform" और "Microsoft.Net.Compilers" पैकेज अपडेट करने चाहिए।


1

मेरे मामले में, मुझे ४.५.२ में मेरा वेब एप्लिकेशन और ४.२.१ में संदर्भित क्लास लीबरीज़ होने पर मुझे त्रुटि मिली। जब मैंने वेब अनुप्रयोग को 4.5.2 संस्करण में अद्यतन किया तो त्रुटि दूर हो गई।


Umbraco 8 को स्थापित करते समय वास्तव में एक ही त्रुटि हुई, गलत .Net संस्करण के लिए 4.5.2 के बजाय (4.7.2 की आवश्यकता) (डिफ़ॉल्ट VS 2017)
बंकरबस्टर

1

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


1

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

कदम:

  1. IIS खोलें

  2. एप्लिकेशन पूल पर क्लिक करें

  3. अपना एप्लिकेशन पूल चुनें जिस पर आपको समस्या हो रही है

  4. राइट क्लिक -> उन्नत सेटिंग्स

  5. पहचान के पास तीन डॉट आइकन पर क्लिक करें

  6. अब कस्टम अकाउंट सेलेक्ट करें

  7. अपने पीसी उपयोगकर्ता नाम और पासवर्ड दें

  8. सहेजें

अपने आवेदन को ताज़ा करें .. और यह काम करना शुरू कर देगा। Dll तक पहुँचने के लिए कुछ सुरक्षा समस्या थी।


1

बस नीचे पैकेज कमांड कंसोल से पैकेज की स्थापना रद्द करें

PM> अनइंस्टॉल-पैकेज Microsoft.CodeDom.Providers.DotNetCompilerPlatform

PM> अनइंस्टॉल-पैकेज Microsoft.Net.Compilers

और फिर इसे nuget मैनेजर से फिर से इंस्टॉल करें यहां छवि विवरण दर्ज करें


1

यदि आपने हाल ही में Microsoft.CodeDom.Providers.DotNetCompilerPlatformपैकेज को स्थापित या अद्यतन किया है, तो जांच लें कि उस पैकेज के संस्करण आपके प्रोजेक्ट पॉइंट में सही, और उसी पैकेज के संस्करण को संदर्भित करते हैं:

  • में ProjectName.csproj, यह सुनिश्चित करें कि एक <Import>टैग Microsoft.CodeDom.Providers.DotNetCompilerPlatformमौजूद है और सही संस्करण को इंगित करता है।

  • में ProjectName.csproj, सुनिश्चित करें कि एक <Reference>टैग Microsoft.CodeDom.Providers.DotNetCompilerPlatformमौजूद है, और सही संस्करण की ओर इशारा करता है, Includeविशेषता और बच्चे दोनों में <HintPath>

  • उस परियोजना में web.config, सुनिश्चित करें कि <system.codedom>टैग मौजूद है, और यह कि उसके बच्चे के <compiler>टैग में उनकी typeविशेषता का एक ही संस्करण है ।

किसी कारण से, मेरे मामले में 1.0.5 1.0.8 करने के लिए इस पैकेज का एक उन्नत वजह से <Reference>में टैग .csprojअपने संबंध के लिए Includeपुराने संस्करण 1.0 के लिए की ओर इशारा करते। 5 .0 (जो मैंने पैकेज को अपग्रेड करने के बाद हटा दिया था), लेकिन बाकी सब कुछ नए और सही संस्करण 1.0 की ओर इशारा कर रहा था। 8 .0।


1

सुनिश्चित करें कि आपकी परियोजना पूरी तरह से निर्मित है!

'आउटपुट' टैब पर क्लिक करें और सुनिश्चित करें कि आपके पास ऐसा कुछ नहीं है:

========== सभी का पुनर्निर्माण करें: 14 सफल हुए, 1 असफल, 0 छोड़ दिया =========

और अपना binफ़ोल्डर खोलें और देखें कि क्या यह अद्यतित है।

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



1

मेरे मामले में मेरी वेब परियोजना को ठीक से लोड नहीं किया गया था (यह परियोजना अनुपलब्ध दिखा रहा था) फिर मुझे अपने वेब प्रोजेक्ट को व्यवस्थापक मोड में अपना दृश्य स्टूडियो खोलने के बाद फिर से लोड करना पड़ा, तब सब कुछ ठीक रहा।


0

मुझे बस एक ही समस्या थी और यह इसलिए था क्योंकि मैंने परियोजना स्थान को स्थानांतरित कर दिया था और बस आभासी निर्देशिका को फिर से बनाने की आवश्यकता थी।


0

हम जो अपवाद चलाते थे, वह स्थानीय नहीं था, लेकिन रिमोट सर्वर पर, Azure CI इसे पैकेज फ़ोल्डर से पढ़ रहा था, लेकिन ऊपर वर्णित संकलक संस्करण नहीं मिले।

इसे ठीक करने के लिए हमने प्रोजेक्ट फाइल को संशोधित किया ताकि इसे कुछ ऐसा बनाया जा सके

यह पर्यावरण पैकेजों को सीधे संदर्भित करते हुए यहां किसी भी पैकेज का संदर्भ नहीं दे रहा है।

इसने इस समस्या को ठीक कर दिया है, हालाँकि हमारे मामलों में हम सीधे पैकेज "पैकेज.कॉन्फ़िग" से पैकेज का उपयोग नहीं करते हैं, इसके बजाय हमारे पास टीमों में संस्करण की अखंडता बनाए रखने के लिए एक अलग फ़ोल्डर है।


0

प्रारंभ कमांड से inetmgr पर जाएं IIS प्रबंधक कंसोल में डिफ़ॉल्ट फ़ोल्डर के तहत एप्लिकेशन फ़ोल्डर का चयन करें उस फ़ोल्डर पर राइट क्लिक करें, फिर एप्लिकेशन को कन्वर्ट करें। सक्षम करके इसे चलाने के लिए।


0

जांचें कि क्या BINफ़ोल्डर पूरी तरह से अपलोड है या फाइलों में गायब है।


मैं भी इसी मुद्दे का सामना कर रहा हूं, asp.net के लिए काफी नया है
प्रशांत पिंपले

0

इस त्रुटि के बारे में मैंने कोशिश की है:

  • परियोजना की सफाई और पुनर्निर्माण
  • परियोजना को उतारना और फिर से लोड करना
  • लक्ष्य रूपरेखा को संशोधित करना
  • आउटपुट पथ को संशोधित करना
  • GAC में सोने की डली जोड़ना
  • पैकेजों को हटाना uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform uninstall-package Microsoft.Net.Compilersऔर उन्हें फिर से स्थापित करना।

जबकि ये सभी वैध समाधान प्रतीत होते हैं, मैं केवल नई त्रुटियां उत्पन्न करने में सक्षम था और अंत में, त्रुटि तब प्रदर्शित होती है जब कुछ संदर्भ / नगेट गायब होते हैं।

मेरे मामले में, मैंने हाल ही में Microsoft Office को पुनर्स्थापित किया था और Microsoft.Office.Core जैसी असेंबली का संदर्भ दे रहा था। नए इंस्टॉलेशन में आवश्यक पैकेज शामिल नहीं थे, जिससे यह बना था ताकि मेरा समाधान सही तरीके से न बन सके।

मैं इस मुद्दे को अपने कोड को उस बिंदु पर हल करने में सक्षम था जहां मुझे Microsoft.Office को संदर्भित करने की आवश्यकता नहीं थी, लेकिन आवश्यक पैकेजों को देखकर और तदनुसार उन्हें स्थापित करके इसे हल किया जा सकता था।

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


0

यदि आप एक परियोजना पर काम कर रहे हैं और यह अभी एक त्रुटि के रूप में पॉप अप हुआ है। अपने कंप्यूटर को पुनः स्थापित करें (या मेरे मामले में सर्वर) इसने मेरे लिए समस्या को ठीक कर दिया।

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