asp.net core 2.2 was the last version of asp.net core middleware that was compatible with .netstandard 2.0. asp.net core 3.1 and beyond made use of features of C# that are not supported by .netstandard 2.0.
with asp.net 3.1, the asp.net core was moved to its own framework/runtime aspnetcore.app and is dependent on netcore.app.