[c#] GlobalConfiguration.Configure () वेब एपीआई 2 और .NET 4.5.1 माइग्रेशन के बाद मौजूद नहीं है



Answers

इनमें से कोई भी विचार एमवीसी 5.2.2 का उपयोग करके मेरी परियोजना में मदद नहीं करता है।

  • System.web.Http 5.2.2 पहले से ही स्थापित किया गया था
  • पैकेज फ़ोल्डर को हटाने और पूरी तरह से सभी NuGet पुस्तकालयों को फिर से डाउनलोड करने से कुछ भी नहीं हुआ
  • Web.config पहले से ही System.Web.Http के लिए एक निर्भर Assembly प्रविष्टि थी

एक पुनर्स्थापित करने के लिए मजबूर समस्या को ठीक किया। NuGet पैकेज प्रबंधक कंसोल से:

update-Package -reinstall Microsoft.AspNet.WebApi.WebHost

Question

मैंने हाल ही में अपनी परियोजना को .NET 4.5.1 और वेब एपीआई 2 में माइग्रेट करने के लिए इस मार्गदर्शिका का पालन करना शुरू कर दिया है।

एमएस डेवलपर रिक एंडरसन की पहली बात यह है कि आप ऐसा करने के लिए कहते हैं:

WebApiConfig.Register(GlobalConfiguration.Configuration);

सेवा मेरे

GlobalConfiguration.Configure(WebApiConfig.Register);

global.asax फ़ाइल में। फिर भी जब मैं निर्माण करने की कोशिश करता हूं तो यह मुझे एक त्रुटि दे रहा है:

त्रुटि 1 'System.Web.Http.GlobalConfiguration' में 'कॉन्फ़िगर' के लिए परिभाषा नहीं है

मेरी परियोजना वर्तमान में एमवीसी 5 और वेब एपीआई 2 और .NET 4.5.1 पर है, फिर भी मुझे लगता है कि सिस्टम.Web.Http अभी भी सोचता है कि यह .NET 4.0 संस्करण है।

मैं इसे ठीक करने के बारे में कैसे जा सकता हूं?

धन्यवाद।

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

यहां मेरी असेंबली बाइंडिंग हैं:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
  </dependentAssembly>
  <!--
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
  </dependentAssembly> -->
</assemblyBinding>

शीर्ष पर टिप्पणी करने के बाद सब कुछ टिप्पणी की गई क्योंकि मुझे त्रुटि मिल रही थी:

चेतावनी 2 उसी आश्रित असेंबली के विभिन्न संस्करणों के बीच संघर्ष मिला जिन्हें हल नहीं किया जा सका। लॉग संदर्भ शब्दकोष विस्तृत होने पर इन संदर्भ विवादों को बिल्ड लॉग में सूचीबद्ध किया गया है।

और हार्ड बाइंडिंग से छुटकारा पाने से वह ठीक हो रहा था।




"इंस्टॉल-पैकेज Microsoft.AspNet.WebApi.Core" बस ठीक काम किया।




GlobalConfiguration.Configure API "Microsoft.AspNet.WebApi.WebHost" संस्करण = "5.2.3" में उपलब्ध है

और "माइक्रोसॉफ्ट.एस्पनेट.एबएपीआई। वेबहोस्ट" संस्करण = "4.0.0" में नहीं




साथ ही साथ पैकेज मैनेजर कंसोल का उपयोग करने के लिए प्रोजेक्ट को अद्यतन करने के लिए nuget प्राप्त करने के लिए Microsoft -AspNet.WebApi.WebHost ग्लोबल कॉन्फ़िगरेशन के लिए,

मुझे System.Web.Http का उपयोग कर अनुपलब्ध करने के लिए इंस्टॉल-पैकेज Microsoft.AspNet.WebApi.SelfHost की आवश्यकता है ;




इनमें से कोई भी समाधान मेरे लिए काम नहीं करता है। मेरे पास Nuget संकुल का एक उलझन था जो एक दूसरे पर परिपत्र निर्भरताओं के कारण अद्यतन नहीं कर सका।

मुझे इसे पुराने तरीके से ठीक करना होगा। मैंने एक नया एमवीसी / वेब एपीआई प्रोजेक्ट बनाया और मैन्युअल रूप से सिस्टम.Web.Http और System.Web.Http.WebHost को नई परियोजना से exisitng समाधान के Nuget फ़ोल्डर्स में कॉपी किया। वहां से मैंने ओएमजी, "ब्राउज़िंग" के संदर्भों को अद्यतन किया और समस्या को ठीक किया।




Related