2017-09-20 20 views
10

जोड़ने के बाद System.Net.Http.Formatting.MediaTypeFormatter.get_SupportedMediaTypes() नहीं मिला। मेरे पास एक .NET Framework 4.6.1 WebApi प्रोजेक्ट है जो एक छोटे NuGet पैकेज का संदर्भ दे रहा है जिसे हम आम तौर पर साझा करने के लिए आंतरिक रूप से उपयोग करते हैं उपयोगिता विधियों।विधि .NET मानक 2.0 निर्भरता

हम अपनी कुछ सामग्री को .NET कोर पर ले जाना शुरू करना चाहते हैं, इसलिए मैंने उपयोगिता पैकेज को .NET मानक 2.0 को लक्षित करने के लिए बदल दिया। यह केवल एक नया .NET मानक 2.0 प्रोजेक्ट बनाकर और स्रोत फ़ाइलों को कॉपी करके किया गया था।

उपयोगिता पैकेज csproj:

<Project Sdk="Microsoft.NET.Sdk"> 

    <PropertyGroup> 
    <TargetFramework>netstandard2.0</TargetFramework> 
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild> 
    </PropertyGroup> 

</Project> 

मेरी WebAPI परियोजना में पैकेज को अपडेट करने के बाद, मैं स्टार्टअप पर निम्नलिखित अपवाद:

[MissingMethodException: Method not found: 'System.Collections.ObjectModel.Collection`1<System.Net.Http.Headers.MediaTypeHeaderValue> System.Net.Http.Formatting.MediaTypeFormatter.get_SupportedMediaTypes()'.] 
    MyWebApiProject.Application.InitializeHttpConfiguration(HttpConfiguration config) in C:\MyWebApiProject\Global.asax.cs:44 
    System.Web.Http.GlobalConfiguration.Configure(Action`1 configurationCallback) +34 
    MyWebApiProject.Application.OnApplicationStarted() in C:\MyWebApiProject\Global.asax.cs:62 
    Ninject.Web.Common.NinjectHttpApplication.Application_Start() +183 

[HttpException (0x80004005): Method not found: 'System.Collections.ObjectModel.Collection`1<System.Net.Http.Headers.MediaTypeHeaderValue> System.Net.Http.Formatting.MediaTypeFormatter.get_SupportedMediaTypes()'.] 
    System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +10104513 
    System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118 
    System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +173 
    System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336 
    System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296 

[HttpException (0x80004005): Method not found: 'System.Collections.ObjectModel.Collection`1<System.Net.Http.Headers.MediaTypeHeaderValue> System.Net.Http.Formatting.MediaTypeFormatter.get_SupportedMediaTypes()'.] 
    System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +10085804 
    System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +95 
    System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254 

केवल परिवर्तन packages.config में संस्करण संख्या हैं और csproj।

कोई विचार?

धन्यवाद!

उत्तर

21

सिर्फ एक बंधन की जरूरत System.Net.Http पर रीडायरेक्ट करने पता चला:

<dependentAssembly> 
    <assemblyIdentity name="System.Net.Http" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/> 
    <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0"/> 
</dependentAssembly>