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

部署Azure Web服务时找不到已发布DLL文件的问题排查

排查Azure App Service部署文件找不到问题的实操步骤

1. 先确认dotnet publish的输出路径是否正确

你的命令得确保把发布产物输出到统一的目录,比如用流水线预定义变量$(Build.ArtifactStagingDirectory),命令示例:

dotnet publish Api/Api.csproj -c Debug -o $(Build.ArtifactStagingDirectory)/publish

别用相对路径瞎凑,容易因为工作目录变化搞混,用预定义变量稳得多。

2. 验证publish目录里到底有啥

在dotnet publish之后加个查看目录的命令,Linux代理用ls,Windows用dir,比如:

ls -la $(Build.ArtifactStagingDirectory)/publish

看看里面是不是真有Api.dll,还有配套的web.config、依赖库这些——部署单个DLL肯定不行,得把整个发布目录的文件都带上。

3. 检查Azure App Service部署任务的路径配置

用Azure App Service deploy任务的话,Package or folder字段要填发布目录的路径,比如$(Build.ArtifactStagingDirectory)/publish,不是单个Api.dll的路径!这个任务会自动把目录里的文件打包成ZIP部署,不用你手动弄ZIP包。

4. 别搞混流水线的工作目录

Linux代理下,/home/vsts/work/1/s/是拉源码的目录,$(Build.ArtifactStagingDirectory)对应的是/home/vsts/work/1/a/,别把这俩路径搞混了,部署任务默认会去1/a/下面找东西,要是你把publish输出到1/s/里,肯定找不到。

5. 检查路径匹配模式和文件权限

  • 如果任务提示找不到匹配的文件,看看你填的通配符是不是错了,比如填**/*.dll但文件在publish目录下,得改成publish/**/*.dll,或者直接指定目录。
  • 顺便给publish目录加个可读权限,避免代理读不了文件:
chmod -R 755 $(Build.ArtifactStagingDirectory)/publish

6. 扒开部署任务的详细日志看真相

展开部署任务的完整日志,看看代理实际在哪个路径下找文件,和你实际的publish路径对比一下,瞬间就能找到哪里不匹配了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 06:33:17