.NET 项目的多方式启动指南 🚀
这张图讲的是 ASP.NET Core 项目的几种常见启动方式,我帮你把每种方式的用法、区别和适用场景都梳理清楚:
一、脚本 / 命令行启动(最常用)
1. dotnet run(开发阶段首选)
-
用法 :在项目根目录(包含
.csproj文件的目录)直接执行:bash
运行
dotnet run -
特点 :
- 自动编译项目并运行,无需手动执行
dotnet build - 会直接加载项目源码、配置文件,适合开发调试
- 可以加参数,比如指定环境:
dotnet run --environment Production
- 自动编译项目并运行,无需手动执行
2. dotnet 项目.dll(生产部署首选)
-
用法 :先执行
dotnet build或dotnet publish编译项目,然后进入输出目录执行:bash
运行
dotnet Advanced.NET6.Project.dll --urls "http://localhost:5000" --environment Production -
特点 :
- 直接运行编译后的程序集(
.dll),无需源码 - 支持传入命令行参数(如端口、环境变量),生产环境部署常用
- 可以配合守护进程(如
systemd)、Docker 容器运行
- 直接运行编译后的程序集(
二、Visual Studio 2022 启动(开发调试)
1. 直接启动(F5 / Ctrl+F5)
- F5(调试启动):启动项目并附加调试器,支持断点、变量查看,适合开发调试
- Ctrl+F5(不调试启动):直接运行项目,不附加调试器,启动速度更快,适合快速验证功能
2. 多启动项目配置
如果你的解决方案包含多个项目,可以设置同时启动多个项目(比如 API + 前端):
- 右键解决方案 → 「设置启动项目」
- 选择「多个启动项目」,勾选需要启动的项目并设置启动顺序
三、其他常见启动方式(补充)
1. Docker 容器启动
dockerfile
# Dockerfile 示例
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
COPY ./publish .
ENTRYPOINT ["dotnet", "Advanced.NET6.Project.dll"]
构建并运行:
bash
运行
docker build -t my-net6-app .
docker run -d -p 5000:80 my-net6-app
2. IIS 部署启动
- 项目发布为
文件夹模式 - 在 IIS 中新建网站,物理路径指向发布文件夹
- 安装 .NET 6 运行时和 ASP.NET Core 模块(
AspNetCoreModuleV2)
四、不同方式对比与选型建议
表格
| 启动方式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
dotnet run |
本地开发调试 | 一键编译 + 运行,配置简单 | 不适合生产,依赖源码 |
dotnet dll |
生产部署、脚本启动 | 无需源码,支持参数,灵活 | 需要先编译 / 发布 |
| Visual Studio | 开发调试、断点排查 | 调试功能强大,可视化操作 | 不适合服务器部署 |
| Docker/IIS | 生产环境、容器化部署 | 隔离性好,可扩展,运维友好 | 配置稍复杂 |
五、命令行参数示例(扩展)
你可以通过 -- 传递参数,例如:
bash
运行
# 指定监听端口和地址
dotnet Advanced.NET6.Project.dll --urls "http://0.0.0.0:8080;https://0.0.0.0:8443"
# 指定运行环境
dotnet Advanced.NET6.Project.dll --environment Staging
# 自定义配置参数
dotnet Advanced.NET6.Project.dll --AppSettings:ConnectionStrings:Default="Server=xxx;Database=xxx;Uid=xxx;Pwd=xxx;"