2017-09-20 11 views
10

Ortak paylaşmak için dahili olarak kullandığımız küçük bir NuGet paketine başvuran bir .NET Framework 4.6.1 WebApi projem var. yarar yöntemleri.Yöntem .NET standart 2.0 bağımlılığı ekledikten sonra System.Net.Http.Formatting.MediaTypeFormatter.get_SupportedMediaTypes()

Bazı öğelerimizi .NET Core'a taşımaya başlamak istiyoruz, bu yüzden yardımcı paketini .NET Standard 2.0 hedefine dönüştürdüm. Bu, yeni bir .NET Standard 2.0 projesi yaparak ve kaynak dosyaları kopyalayarak yapıldı.

Yardımcı paket csproj:

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

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

</Project> 

benim WebAPI projesinde paketi güncellemeden sonra başlangıçta aşağıdaki özel olsun:

[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 

sadece değişiklikleri packages.config sürüm numarası vardır ve csproj.

Herhangi bir fikrin var mı?

Teşekkürler!

cevap

21

sadece System.Net.Http yönlendirmek bağlayıcı gerek ortaya çıktı :

<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> 
İlgili konular