ASP.NET Core 时代只需要“有运行时”,运行时是什么
运行时(Runtime)就是 让 .NET 程序跑起来的“最小发动机”——
没有它,操作系统只认识一堆 DLL/EXE 文件;有了它,CPU 才能执行你的 ASP.NET Core 代码。
没有它,操作系统只认识一堆 DLL/EXE 文件;有了它,CPU 才能执行你的 ASP.NET Core 代码。
-
运行时到底长什么样
表格
| 平台 | 文件名/包名 | 体积 | 内容 |
|---|---|---|---|
| Windows | dotnet-runtime-win-x64.exe / aspnetcore-runtime-win-x64.exe |
≈30 MB / ≈50 MB | CLR + 基础类库 + ASP.NET Core 原生模块 |
| Linux | apt install aspnetcore-runtime-8.0 |
≈80 MB | 同上,打包成 deb/rpm |
| macOS | dotnet-install.sh --runtime aspnetcore |
≈70 MB | 同上,.pkg 或 tar.gz |
装完后硬盘会出现一个根目录:
/usr/share/dotnet/ (Linux)
C:\Program Files\dotnet\ (Windows)
└── dotnet ← 主入口
shared/
├── Microsoft.NETCore.App/ ← 基础运行时
└── Microsoft.AspNetCore.App/ ← ASP.NET Core 专用库
-
运行时包含的三大件
-
CLR(Common Language Runtime)
-
垃圾回收、线程调度、异常处理、JIT 编译器
-
-
基础类库(BCL)
-
System.IO、System.Collections、System.Threading等
-
-
ASP.NET Core 原生模块
-
Kestrel 网络引擎、配置、依赖注入、Hosting —— 框架依赖部署必备
-
-
运行时 vs SDK vs 自包含
SDK(开发) = 运行时 + 编译器 + CLI 工具(dotnet build/run)
运行时(生产)= 只够“跑”的最小集合
自包含(SCD)= 把运行时复制到你的发布文件夹里,目标机 0 依赖
-
一键验证
bash
# 任何平台
dotnet --info
# 出现如下即代表运行时 OK
.NET runtimes installed:
Microsoft.AspNetCore.App 8.0.6 [/usr/share/dotnet/shared/...]
Microsoft.NETCore.App 8.0.6 [/usr/share/dotnet/shared/...]
-
生产环境最小安装示例
Ubuntu 22.04
bash
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
sudo apt install -y aspnetcore-runtime-8.0 # 一条命令搞定
Windows Server下载链接:https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0
一句话总结
运行时 = “.NET 虚拟机 + 基础类库 + ASP.NET Core 网络模块”的合体,
装好后系统里就多了一个 dotnet 命令,你的框架依赖应用就能被加载、JIT、执行——这就是 ASP.NET Core 的‘最小发动机’。
浙公网安备 33010602011771号