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

如何向dotnet publish传递参数供应用Main方法的args接收?

答案

哎,刚好踩过这个坑!先给你明确结论:dotnet publish 本身的参数是用来控制打包流程的,没法直接把参数传给你应用里 Main 方法的 args 数组。毕竟 dotnet publish 只是负责把你的代码编译打包成可部署的文件,它根本不会运行你的应用——而 Main 的 args 是要等应用真正启动运行的时候才会接收输入的。

不过你要是想让应用拿到参数,完全可以在发布完成后运行打包好的程序时传呀,举个实际操作的例子:

  1. 先正常执行发布命令完成打包:
    dotnet publish -c Release -o ./publish
    
  2. 进入生成的发布目录,运行应用并带上参数:
    cd ./publish
    dotnet YourApp.dll arg1 arg2 "this is a multi-word argument"
    
    这时候你的 Main 方法里的 args 数组就会收到 ["arg1", "arg2", "this is a multi-word argument"],完全符合你的需求。

要是你想的是在打包阶段就把某些参数植入应用(比如固定的版本号、环境标识这类),那靠 Main 的 args 就不行了,得换别的路子:

  • 用编译常量:发布时加 /p:DefineConstants=YOUR_CUSTOM_CONST 参数定义编译常量,代码里直接判断使用
  • 修改配置文件:发布后用脚本或者工具修改 appsettings.json 这类配置文件,应用运行时从配置读取
  • 用环境变量:在发布脚本里设置好环境变量,应用启动时读取这些变量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:40:48