Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net core 为什么我可以编译安装了2.2和3.1的.NET Core 2.1应用程序?_.net Core - Fatal编程技术网

.net core 为什么我可以编译安装了2.2和3.1的.NET Core 2.1应用程序?

.net core 为什么我可以编译安装了2.2和3.1的.NET Core 2.1应用程序?,.net-core,.net Core,我的应用程序的目标是 netcoreapp2.1 而dotnet-list SDK会返回以下内容: 2.2.401 [C:\Program Files\dotnet\sdk] 3.1.100 [C:\Program Files\dotnet\sdk] 为什么我可以执行dotnet发布-配置发布-r linux-x64?.NET内核向后兼容。因此,最新的SDK知道较旧的目标框架。如果不是这样,每次在计算机中安装一个新的SDK时,如果人们删除旧的SDK以节省磁盘空间,因为实际上不需要有多个SDK,

我的应用程序的目标是

netcoreapp2.1

而dotnet-list SDK会返回以下内容:

2.2.401 [C:\Program Files\dotnet\sdk]
3.1.100 [C:\Program Files\dotnet\sdk]

为什么我可以执行dotnet发布-配置发布-r linux-x64?

.NET内核向后兼容。因此,最新的SDK知道较旧的目标框架。如果不是这样,每次在计算机中安装一个新的SDK时,如果人们删除旧的SDK以节省磁盘空间,因为实际上不需要有多个SDK,那么他们的旧应用程序将无法构建。因此.NET核心工具需要能够构建较旧的目标框架

因为.NET核心是向后兼容的,就像每个.NET版本一样。。。