Ich habe eine Web-API-Lösung (Targeting .NET 4.6) mit ein paar ziemlich leichten .NET Core-Projekten darin. Ich habe die .NET Core-Projekte als NuGet-Paket verpackt und sie im Web-API-Projekt installiert.Typ-Argument 'System.Net.Http.Headers.MediaTypeHeaderValue' verletzt die Einschränkung von Typ Parameter 'T'
Alles funktioniert gut, aber beim Ausführen bekomme ich die folgende Ausnahme, wenn die Anwendung initialisiert wird.
Method System.Net.Http.CloneableExtensions.Clone: type argument 'System.Net.Http.Headers.MediaTypeHeaderValue' violates the constraint of type parameter 'T'.
[VerificationException: Method System.Net.Http.CloneableExtensions.Clone: type argument 'System.Net.Http.Headers.MediaTypeHeaderValue' violates the constraint of type parameter 'T'.]
System.Net.Http.Formatting.MediaTypeConstants.get_ApplicationJsonMediaType() +0
System.Net.Http.Formatting.JsonMediaTypeFormatter..ctor() +64
System.Net.Http.Formatting.MediaTypeFormatterCollection.CreateDefaultFormatters() +41
System.Web.Http.HttpConfiguration.DefaultFormatters(HttpConfiguration config) +26
System.Web.Http.HttpConfiguration..ctor(HttpRouteCollection routes) +214
System.Web.Http.GlobalConfiguration.<CreateConfiguration>b__0() +60
System.Lazy`1.CreateValue() +411
System.Lazy`1.LazyInitValue() +183
System.Lazy`1.get_Value() +75
System.Web.Http.GlobalConfiguration.get_Configuration() +27
Runpath.Platform.Web.DependencyResolution.StructureMapBootStrapper.Initialise() in C:\Code3\Runpath\Markets\Platform\Main - Copy\Runpath.Platform.Web\DependencyResolution\StructureMapBootStrapper.cs:15
Runpath.Platform.Web.WebApiApplication.Application_Start() in C:\Code3\Runpath\Markets\Platform\Main - Copy\Runpath.Platform.Web\Global.asax.cs:30
[HttpException (0x80004005): Method System.Net.Http.CloneableExtensions.Clone: type argument 'System.Net.Http.Headers.MediaTypeHeaderValue' violates the constraint of type parameter 'T'.]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +493
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +176
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +364
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +303
[HttpException (0x80004005): Method System.Net.Http.CloneableExtensions.Clone: type argument 'System.Net.Http.Headers.MediaTypeHeaderValue' violates the constraint of type parameter 'T'.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +770
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +95
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +195
ich in Object Browser überprüft haben, und MediaTypeHeaderValue
tut ICloneable
implementieren. Irgendwelche Ideen, was könnte das verursachen?
Ich sollte auch sagen, dass es in Ordnung ist, wenn ich die .NET Core-Projekte durch .NET 4.6-Versionen ersetze.
bearbeiten
Per Johnathan Antwort konnte ich es durch project.json arbeiten lassen Aktualisierung verwenden System.Net.Http 4.0.0.0 for .NET 4.6:
{
"version": "1.0.3-*",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"net46": {
"dependencies": {
"System.Net.Http": "4.0.0"
}
},
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
Einstellung auf 4.0.0 oder gehen 4.6 hier nicht gelöst .NET .... ich online lesen viel, aber ich kann es hier nicht beheben. Kannst du mir helfen? –
sind in diesem Bereich Fortschritte erzielt worden? –