.NET平台系列26:在 Windows 上安装 .NET Core/.NET5/.NET6
本文介绍如何在 Windows 上安装 .NET。 .NET 由运行时和 SDK 组成。 运行时用于运行 .NET 应用,应用可能包含也可能不包含它。 SDK 用于创建 .NET 应用和库。 .NET 运行时始终随 SDK 一起安装。当前最新版本的 .NET 是 5.0。点击此处,下载.NET Core/.NET。
下表列出了当前支持的 .NET 版本以及支持它们的 Windows 版本。 这些版本在 .NET 版本达到支持终止日期或 Windows 版本达到生命周期之前仍受支持。
Windows 10 版本终止服务日期按版本分段。 下表中仅考虑家庭版、专业版、专业教育版和专业工作站版。 查看 Windows 生命周期事实表单,了解具体的详细信息。

以下 .NET 版本 不再受到支持:
- 3.0
- 2.2
- 2.0
所以,如果新建.NET Core 项目,建议直接使用.NET5 或者 .NET Core 3.1版本。
运行时用于运行使用 .NET 创建的应用。 应用作者发布应用时,可以在其应用中包含运行时。 如果作者未包含运行时,则由用户安装运行时。
可以在 Windows 上安装三个不同的运行时:
ASP.NET Core 运行时
运行 ASP.NET Core 应用。 包括 .NET 运行时。桌面运行时
运行适用于 Windows 的 .NET WPF 和 Windows 窗体桌面应用。 包括 .NET 运行时。.NET 运行时
此运行时是最简单的运行时,不包括任何其他运行时。 强烈建议同时安装 ASP.NET Core 运行时和桌面运行时,以最大限度地提升与 .NET 应用的兼容性
SDK 用于生成和发布 .NET 应用和库。 安装 SDK 会包含三个运行时:ASP.NET Core、桌面和 .NET。
运行时下载地址:https://dotnet.microsoft.com/download/dotnet
.NET 5.0 支持下列 Windows 版本。有关 .NET 5.0 支持的操作系统、发行版和生命周期策略的详细信息,请参阅 .NET 5.0 支持的 OS 版本。

.NET Core 3.1 支持下列 Windows 版本:有关 .NET Core 3.1 支持的操作系统、发行版和生命周期策略的详细信息,请参阅 .NET Core 3.1 支持的 OS 版本。

Windows 7 / Vista / 8.1 / Server 2008 R2 / Server 2012 R2
如果要在以下 Windows 版本上安装 .NET SDK 或运行时,则需要其他依赖项:

如果收到与以下 dll 之一相关的错误,也需要满足上述要求:
- api-ms-win-crt-runtime-l1-1-0.dll
- api-ms-win-cor-timezone-l1-1-0.dll
- hostfxr.dll
dotnet-install 脚本用于运行时的 CI 自动化和非管理员安装。 可从 dotnet-install 脚本引用页下载该脚本。
此脚本默认安装最新的长期支持 (LTS) 版本,即 .NET Core 3.1。 可通过指定 Channel 开关以选择特定版本。 包括 Runtime 开关以安装运行时。 否则,该脚本安装 SDK。
dotnet-install.ps1 -Channel 5.0 -Runtime aspnetcore
通过省略 -Runtime 开关来安装 SDK。 在此示例中将 -Channel 开关设置为 Current,这将安装受支持的最新版本。
dotnet-install.ps1 -Channel Current
如果要使用 Visual Studio 开发 .NET 应用,请参阅下表,了解不同目标 .NET SDK 版本所需的 Visual Studio 最低版本。

如果你已安装 Visual Studio,则可以使用以下步骤检查你的版本。
- 打开 Visual Studio。
- 选择“帮助” > “Microsoft Visual Studio”。
- 从“关于”对话框中读取版本号。
Visual Studio 可安装最新的 .NET SDK 和运行时。
Visual Studio 下载地址:https://visualstudio.microsoft.com/zh-hans/downloads/?utm_medium=microsoft&utm_source=docs.microsoft.com&utm_campaign=button+cta&utm_content=download+vs2019
选择工作负载
安装或修改 Visual Studio 时,根据要生成的应用程序的类型,选择以下一个或多个工作负载:
- “其他工具集”部分中的“.NET Core 跨平台开发”工作负荷 。
- “Web 和云”部分中的“ASP.NET 和 Web 开发”工作负荷 。
- “Web 和云”部分中的“Azure 开发”工作负载 。
- “桌面和移动”部分中的“NET 桌面开发”工作负载 。

Visual Studio Code 是一个功能强大的轻量级源代码编辑器,可在桌面上运行。 Visual Studio Code 适用于 Windows、macOS 和 Linux。
虽然 Visual Studio Code 不像 Visual Studio 一样附带自动的 .NET Core 安装程序,但添加 .NET Core 支持非常简单。
适用于 .NET 的下载页面提供了 Windows Installer 可执行文件。使用 Windows 安装程序安装 .NET 时,可以通过设置 DOTNETHOME_X64 和 DOTNETHOME_X86 参数来自定义安装路径:
dotnet-sdk-3.1.301-win-x64.exe DOTNETHOME_X64="F:\dotnet\x64" DOTNETHOME_X86="F:\dotnet\x86"
如果要以无提示方式安装 .NET(例如在生产环境中)或要支持持续集成,请使用以下开关:
/install
安装 .NET。/quiet
禁止显示任何 UI 和提示。norestart
禁止任何重启尝试。
dotnet-sdk-3.1.301-win-x64.exe /install /quiet /norestart
有关详细信息,请参阅标准安装程序命令行选项。
提示:安装程序返回退出代码 0 以表示成功,返回退出代码 3010 以表示需要重启。 任何其他值通常都是错误代码。
除了使用适用于 .NET 的 Windows 安装程序,还可以下载并手动安装 SDK 或运行时。 手动安装通常作为持续集成测试的一部分执行。 对于开发人员或用户,一般使用安装程序会更好。
在下载 .NET SDK 和 .NET 运行时后,可以手动安装它们。 如果安装 .NET SDK,则无需安装相应的运行时。 首先,从以下站点之一下载 SDK 或运行时的二进制版本:
创建要将 .NET 提取到的目录,例如 %USERPROFILE%\dotnet。 然后,将下载的 zip 文件提取到该目录中。
默认情况下,.NET CLI 命令和应用不会使用通过这种方式安装的 .NET,并且你必须显式选择才能使用它。 为此,请更改用于启动应用程序的环境变量:
set DOTNET_ROOT=%USERPROFILE%\dotnet
set PATH=%USERPROFILE%\dotnet;%PATH%
set DOTNET_MULTILEVEL_LOOKUP=0
使用此方法可以将多个版本安装到不同的位置,然后通过使用指向安装位置的环境变量运行应用程序来明确选择应用程序应使用哪个安装位置。
将 DOTNET_MULTILEVEL_LOOKUP 设置为 0 时,.NET 将忽略任何全局安装的 .NET 版本。 删除环境设置,让 .NET 在选择用于运行应用程序的最佳框架时考虑默认的全局安装位置。 默认值通常为 C:\Program Files\dotnet,这是安装 .NET 的安装程序所在的位置。
容器提供了一种将应用程序与主机系统的其余部分隔离的轻量级方法。 同一计算机上的容器只共享内核,并使用为应用程序提供的资源。
.NET 可在 Docker 容器中运行。 官方 .NET Docker 映像发布到 Microsoft 容器注册表 (MCR),用户可在 Microsoft.NET Docker Hub 存储库中找到这些映像。 每个存储库包含 .NET(SDK 或运行时)和可以使用的操作系统的不同组合的映像。
Microsoft 提供适合特定场景的映像。 例如,ASP.NET Core 存储库提供针对在生产环境中运行 ASP.NET Core 应用生成的映像。
有关在 Docker 容器中使用 .NET 的详细信息,请参阅 .NET 和 Docker 简介和示例。
参考文献:
- https://docs.microsoft.com/zh-cn/dotnet/core/install/windows?tabs=net50
.NET Core 3.1 支持下列 Windows 版本:
.NET平台系列26:在 Windows 上安装 .NET Core/.NET5/.NET6的更多相关文章
- .NET平台系列27:在 Linux 上安装 .NET Core/.NET5/.NET6
系列目录 [已更新最新开发文章,点击查看详细] .NET 在不同的 Linux 发行版上可用. 大多数 Linux 平台和发行版每年都有一个主要版本,并提供用于安装 .NET 的包管理器. 本 ...
- Git学习系列之Windows上安装Git详细步骤(图文详解)
前言 最初,Git是用于Linux下的内核代码管理.因为其非常好用,目前,已经被成功移植到Mac和Windows操作系统下. 鉴于大部分使用者使用的是Windows操作系统,故,这里详细讲解Windo ...
- Git学习系列之Windows上安装Git之后的一些配置(图文详解)
不多说,直接上干货! 前面博客 Git学习系列之Windows上安装Git详细步骤(图文详解) 第一次使用Git时,需要对Git进行一些配置,以方便使用Git. 不过,这种配置工作只需要进行一次便可, ...
- go语言系列--golang在windows上的安装和开发环境goland的配置
在windows上安装golang软件 golang中国网址为:https://studygolang.com/dl 我的学习选择版本:1.12.5 golang 1.12.5版本更新的内容:gola ...
- Windows上安装配置SSH教程(2)——在Windows XP和Windows 10上安装并配置OpenSSH for Windows
知识点汇总:http://www.cnblogs.com/feipeng8848/p/8559803.html ------------------------ 安装方式有3种: (1)Windows ...
- PHP 1:在Windows上安装和配置PHP,Apache和My SQL
原文:PHP 1:在Windows上安装和配置PHP,Apache和My SQL 如果你Google一把类似的主题,你会发现相关的文章可以塞满你的硬盘.在这里之所以把它再次拿出来,目的是想记录我作为一 ...
- 在Windows上安装MongoDB
原文官方文档:https://docs.mongodb.org/v2.6/tutorial/install-mongodb-on-windows/ 基于版本:MongoDB 2.6 概览 通过这个示例 ...
- 在Windows上安装Nexus 3.2.0-01
在Windows上安装Nexus 环境: Windows 7 apache-maven-3.3.9 JDK 1.8 下载Nexus: https://sonatype-download.globa ...
- 【python安装】Windows上安装和创建python开发环境
1. 在 windows10 上安装python开发环境 Linux和Mac OS都自带python环境,但是Windows没有,所以需要自行安装. 第1步:访问 python官网,下载Windows ...
随机推荐
- c# 通过 p/invoke 使用 c的加密程序 参数传递问题
最近项目中使用需要上位机和下位机通过rs232通信,涉及到通讯加密问题, 硬件那边主要是pcb layout的,于是我就把加密的活拦了过来,锻炼锻炼 首先说明问题: 在c中,加密解密都测试通过,然后在 ...
- postgresql高级应用之合并单元格
postgresql高级应用之合并单元格 转载请注明出处https://www.cnblogs.com/funnyzpc/p/14732172.html 1.写在前面✍ 继上一篇postgresql高 ...
- 【python】Leetcode每日一题-矩阵置零
[python]Leetcode每日一题-矩阵置零 [题目描述] 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 .请使用 原地 算法. 进阶: 一个直观的解 ...
- 实时计算框架:Flink集群搭建与运行机制
一.Flink概述 1.基础简介 Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算.Flink被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算.主要特性包 ...
- mybatis增删改返回的int是-2147482646,并不是想要返回结果
MyBatis发现更新和插入返回值一直为"-2147482646"的错误是由defaultExecutorType设置引起的,如果设置为batch,更新返回值就会丢失,返回结果就只 ...
- 使用TK框架中updateByPrimaryKey与updateByPrimaryKeySelective区别
int updateByPrimaryKey(T var1); int updateByPrimaryKeySelective(T var1); updateByPrimaryKeySelective ...
- c语言编程学习之二维数组
二维数组 c语言按照行主序存储二维数组.也就是说,二维数组元素在内存中的位置是连续的,每行末尾元素(若不是最后一行)的下一个元素就是下一行的首元素. 如下图所示 接下来我们来分析一下如何将二维数组所有 ...
- mysql无列名注入
0x00 原理 mysql无列名注入是报错注入的一个变种,前提是已知表名,但是不知道列名,或者只知道部分列名,可通过报错注入拼接查询自身表,当自表被拼接时,由于存在重复属性列,会将列信息报错返回, ...
- [刷题] 416 Partition Equal Subset Sum
要求 非空数组的所有数字都是正整数,是否可以将这个数组的元素分成两部分,使得每部分的数字和相等 最多200个数字,每个数字最大为100 示例 [1,5,11,5],返回 true [1,2,3,5], ...
- 一文搞懂spring的常用注解
spring传统做法是使用xml文件对bean进行注入和配置.通过使用spring提供的注解,可以极大的降低配置xml文件的繁琐.本文将介绍常用的注解. 一@Autowired Autowired意为 ...