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

部署Azure Linux App Service .NET6时提示dotnet命令未找到

问题原因

Linux版Azure App Service官方镜像已经预装了.NET 6运行时,本地Git部署时出现dotnet: command not found不是运行时未安装,是Kudu触发的部署shell默认没有加载.NET 6对应的PATH环境变量。切换到.NET 3.1时能识别是因为3.1的路径被默认写在了全局PATH的低优先级加载项里,6的路径需要主动加载对应环境脚本才能识别。

操作步骤
  • 首先确认运行时栈配置正确:进入App Service的「配置-常规设置」页,确认运行时栈选择为.NET,版本选择.NET 6 (LTS),点击保存等待实例重启完成,不要使用自定义空镜像或者其他语言栈的镜像创建应用。
  • 在你的本地代码仓库根目录新建名为.deployment的配置文件,指定部署命令执行前先加载dotnet环境变量,文件内容如下:
[config]
command = source /etc/profile.d/dotnet.sh && bash deploy.sh

该配置会让Kudu执行部署脚本前,先执行镜像内置的dotnet环境初始化脚本,把dotnet命令所在路径加入当前部署进程的PATH变量,从根源解决命令找不到的问题。

  • 清除历史版本残留的部署缓存:打开App Service对应的Kudu控制台,进入SSH终端执行以下命令清理旧的部署文件和缓存:
rm -rf /home/site/wwwroot/* /home/site/deployments/* /tmp/oryx/*
  • 回到本地代码仓库,把新增的.deployment文件提交到Git仓库,重新推送到Azure的Git部署地址,重新触发部署流程即可。
验证方法

部署完成后在Kudu的SSH终端执行dotnet --version,如果返回6.0.x格式的版本号,且站点可以正常访问,说明配置生效。

注意:不要尝试手动在运行中的容器内通过apt或者二进制包方式安装.NET 6,App Service的Linux容器是无状态运行的,实例重启后手动安装的所有内容都会被清空,使用官方镜像预装的运行时是唯一持久化生效的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:24:24