最近在使用Visual Studio 2019创建C#类库的时候,发现可以分别创建以下几种类库
.Net Core 和**.Net Framework** 我是知道的,这个**.Net Standard**是啥,就觉得有点奇怪。貌似以前用VS2015的时候没看到啊,VS2017是有的,只是当时不在意。
找了一下,原来在Visual Studio 2015的时候是叫可移植类库,如下
然后到属性页里修改为.Net Standard
那区别是什么呢,如下
.Net Core :.NET Core 是一个开源、跨平台的开发平台,可以用来构建现代、可伸缩和高性能的跨平台软件应用程序的,包括Asp.Net Core 、WPF 、WInform等 。.Net Core 可以使用C# 、Visual Basic 和**F#**来进行开发。这里理解为.Net的跨平台版本,适合现在流行的Web、移动、云服务、微服务等方向的开发。
注意:在.Net Core 3.1之前的版本,都称为.NET Core,后面的版本直接称为.NET(包括.NET 5、.NET 6、.NET 7、.NET 8),现在的最新版本是.NET 8。
.Net Framework: 这里直接理解为.Net的标准版本,从**.Net Framework1.0** 到今天的**.Net Framework4.8**
.Net Standard :.NET Standard 是一套正式的 .NET API 规范,等于是一套规范,.Net Core也好,.Net Frameworkd也好,都必须都实现这个规范。
例如,.NET Framework 4.6 实现 .NET Standard 1.3。也就是说,它会公开在 .NET Standard 版本 1.0 到 1.3 中定义的所有 API。 同样,.NET Framework 4.6.1 实现 .NET Standard 1.4,而 .NET Core 1.0 则实现 .NET Standard 1.6。
目前.Net Framework实现的最高.Net Standard版本是2.0。
详细可见下表
.NET Standard | 1.0 | 1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 2.0 | 2.1 |
---|---|---|---|---|---|---|---|---|---|
.NET Core | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 2.0 | 3.0 |
.NET Framework 1 | 4.5 | 4.5 | 4.5.1 | 4.6 | 4.6.1 | 4.6.1 2 | 4.6.1 2 | 4.6.1 2 | N/A3 |
参考: