我对.NET Standard和最近宣布的.NET Core 3.0和ASP.NET Core 3.1有几个问题。
以前的.NET Standard版本与正在发布的.NET core具有相同的主要版本,但是对于.NET Core 3.1,兼容版本是.NET Standard 2.1。
- .NET Standard是否正在逐渐过时,还是这只是一个与.NET Core发布没有关联的版本号?
- 我们可以假设.NET Standard 2.1也将与ASP.NET Core 3.1兼容吗?
- 如果我们将现有的Web应用程序和MVC Web API迁移到asp.net core 3.1,那么已使用Web应用程序的现有.NET标准类库会发生什么情况?
我们是否需要更改旧的.NET标准类库的目标框架:
<TargetFramework>netstandard2.0</TargetFramework>
到
<TargetFramework>netstandard2.1</TargetFramework>
或更改为
<TargetFramework>netcoreapp3.0</TargetFramework>
并添加一个FrameworkReference到Microsoft.AspNetCore.App
Span<T>
等。如果你不需要利用这些功能,那么针对更广泛的兼容性,最好将目标设置为.NET Standard 2.0。针对.NET Standard 2.1其实没有什么意义,因为除了.NET Core 3+之外,没有其他支持它的,而且可能永远也不会有。 - Chris Pratt