You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

dotnet publish与dotnet build命令差异及YAML流水线部署选型咨询

.NET Build 和 Publish 命令的区别及流水线选型建议

核心区别

1. 操作范围与输出内容

  • dotnet build MyApi.csproj -c release -o output:仅完成源代码编译,生成IL中间语言文件(.dll)和项目自身的程序集,但不会收集第三方NuGet依赖包,也不生成部署所需的完整运行环境文件。输出内容仅适用于开发调试或单元测试,无法直接部署。
  • dotnet publish MyApi.csproj -o output:默认先执行build操作,再额外完成以下关键步骤:
    • 收集项目依赖的所有第三方NuGet包(包括运行时依赖)
    • 生成符合部署要求的完整目录结构,包含运行应用所需的全部文件(若指定自包含模式,还会打包.NET运行时)
    • 自动应用Release配置下的优化(如移除调试符号)

2. 用途差异

  • build输出仅用于开发阶段的本地验证,不具备部署价值
  • publish输出是完整的可部署包,可以直接用于服务器部署、容器镜像构建或打包为zip制品

YAML流水线选型建议

如果目标是生成用于.zip制品部署的内容,直接选择dotnet publish命令。原因:

  • 一键生成部署所需的全部文件,无需手动收集依赖包
  • 可通过参数指定部署模式(自包含/依赖框架),适配不同生产环境需求
  • 流水线中只需执行这一个命令,就能得到可直接打包为zip的完整目录

推荐在流水线中使用带Release配置的命令:

dotnet publish MyApi.csproj -c Release -o output

内容的提问来源于stack exchange,提问作者Enrico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 03:19:52