.NET 项目的多方式启动指南 [特殊字符]

.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. 右键解决方案 → 「设置启动项目」
  2. 选择「多个启动项目」,勾选需要启动的项目并设置启动顺序

三、其他常见启动方式(补充)

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 部署启动

  1. 项目发布为 文件夹 模式
  2. 在 IIS 中新建网站,物理路径指向发布文件夹
  3. 安装 .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;"
相关推荐
玩泥巴的8 小时前
MAF + 飞书:让大模型干活,但别让它乱干
ai·c#·.net·飞书·agent
cpp_w12 小时前
C#基础3- 面向对象中级应用3
后端·c#
步步为营DotNet13 小时前
Async 状态机要搬进运行时了:.NET 10 Runtime Async 实测,快的地方快 1.5 倍,贵的地方贵 5 倍
性能优化·c#·.net·async·runtime
hixiong12313 小时前
C# 使用 ZXingCpp.Angle 进行条码、二维码识别
开发语言·c#·扫码
步步为营DotNet14 小时前
System.Text.Json 源生成:三个“看起来已经生效“的静默失效
c#·.net·native aot·源生成
用户788477316341 天前
用 C# 把每周 6 小时的 PDF 录入干到 20 分钟:一份可复制的桌面 OCR 方案
c#
csdn_aspnet1 天前
C# .NetCore Swagger ISchemaFilter 处理枚举、特殊类型
c#·.netcore·swagger
滴滴答答哒1 天前
C# 技巧:优雅实现对象的“局部更新”与“字段合并”
开发语言·c#
code_long1 天前
.net core 连接打印机 使用zpl指令打印机,并且位图本地渲染zpl指令
c#·.netcore·位图·打印机·模板编辑·模板预览
csdn_aspnet2 天前
C# .NetCore Swagger ISchemaFilter Long 转 String 防精度丢失
c#·.netcore·swagger