dotnet / aspnetcore

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
https://asp.net
MIT License
35.35k stars 9.99k forks source link

ToRfc1123String fails as InplaceStringBuilder from Microsoft.Extensions.Primitives has been removed in v5.0.0 #29062

Closed DenisAgarev closed 3 years ago

DenisAgarev commented 3 years ago

This problem was described in https://github.com/dotnet/aspnetcore/issues/27986, but I still can't solve this issue

I've got net48 Asp.Net Core2 service I want to update packages to use fore example: "Microsoft.Extensions.Configuration" Version="5.0.0" which uses "Microsoft.Extensions.Primitives" Version="5.0.0"

I was playing with dependencies adding directly latest Microsoft.Net.Http.Headers, but as i understand Microsoft.AspNetCore.Server.Kestrel.Core still use same version

What should I do?

Tratcher commented 3 years ago

ASP.NET Core 2.1 is the only currently supported version on .NET 4.x. That means you should continue to use 2.1 versions of all AspNetCore and Extensions packages. You cannot mix and match packages across major versions.

DenisAgarev commented 3 years ago

Ok, i see. But solution is quite simple. Why not just fix one method in Microsoft.Net.Http.Headers. It would help many developers to keep their semi-legacy projects with up to date packages and give them more months to migrate to netcore. Hope you will help us.

Tratcher commented 3 years ago

We don't test cross-version compat like that so there are likely many more issues you'll encounter.

The 2.1 packages are patched regularly to support old apps. Stick with the 2.1 packages until you're ready to move to Core.

DenisAgarev commented 3 years ago

But Microsoft.Net.Http.Headers is still inconsistent, cause it allows Microsoft.Extensions.Primitives >= 2.2, but it's wrong. Isn't it a reason to create a new version for this package?

Tratcher commented 3 years ago

Microsoft.Net.Http.Headers should also stay on 2.1.

DenisAgarev commented 3 years ago

Yes, It's clear, but now I'm talking only about Microsoft.Net.Http.Headers 2.2.8.

I mean Microsoft.Net.Http.Headers 2.2.8 package is inconsistent itself cause it allows Microsoft.Extensions.Primitives >= 2.2, so I can is use Microsoft.Net.Http.Headers 2.2.8 package directly with Microsoft.Extensions.Primitives 5.0.0 (it is ok according to nuspec) and it would not work. Isn't in a point to solve this issue in Microsoft.Net.Http.Headers 2.2.9?

Tratcher commented 3 years ago

Support for all 2.2 packages has been discontinued. You should use 2.1 for long term support or move to .NET Core 3.1.

There was a lot of discussion about if we should force upward version caps for package dependencies. We decided against it only because higher versions might work and we didn't want to artificially limit it, especially when the same dependency might be shared across multiple projects.

DenisAgarev commented 3 years ago

Ok, I can do nothing with it. But I think it's quite complicated that the latest version of Microsoft.Net.Http.Headers is first of all not working with allowed dependencies version and also out of support cause it belongs to ASP.Net Core 2.2 and not 2.1 which is under support. Sorry but this is not friendly.

ghost commented 3 years ago

This issue has been resolved and has not had any activity for 1 day. It will be closed for housekeeping purposes.

See our Issue Management Policies for more information.

Tratcher commented 3 years ago

Understood. That's one of the many reasons decided to combine many packages into a runtime for 3.0 and later.