c# .net-standard-2.0

c# - Método no encontrado System.Net.Http.Formatting.MediaTypeFormatter.get_SupportedMediaTypes() después de agregar la dependencia.NET Standard 2.0



.net-standard-2.0 (1)

Resultó que solo necesitaba una redirección de enlace a 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>

Tengo un proyecto .NET Framework 4.6.1 WebApi que hace referencia a un pequeño paquete NuGet que utilizamos internamente para compartir métodos de utilidad comunes.

Queremos comenzar a mover algunas de nuestras cosas a .NET Core, así que cambié el paquete de utilidades para apuntar a .NET Standard 2.0. Esto se hizo simplemente haciendo un nuevo proyecto .NET Standard 2.0 y copiando los archivos de origen.

Paquete de utilidad csproj:

<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <GeneratePackageOnBuild>true</GeneratePackageOnBuild> </PropertyGroup> </Project>

Después de actualizar el paquete en mi proyecto WebApi, obtengo la siguiente excepción al inicio:

[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

Los únicos cambios son el número de versión en packages.config y el csproj.

¿Algunas ideas?

¡Gracias!