对于 .Net 8 项目,我几乎拥有最简单的管道/发布。
.zip 文件有一个Content/D_C/a/1/s/
,由于它部署到 Linux 容器,因此它不会尝试解包它。我尝试将我的构建主机更改为 ubuntu-24.04,但它说我没有安装 mono。我认为这可能是我需要解决的实际问题。我看不到我的核心应用程序中任何地方针对 .Net Framework。我所有的项目都只针对 net8.0。那么为什么它需要 mono?但无论如何,这应该可以在 Windows VM 上构建;对吗?
这在某种程度上描述了我的问题: Azure web app get deployed but error content in wwwroot folder
当使用 VSBuild 任务模板默认参数时,我可以重现同样的问题。
例如:
要删除 zip 包中的附加文件夹路径,我们需要更改 VSbuild 任务参数:
VSbuild 参数示例:
构建管道示例:
我们可以使用存档文件任务来压缩所有输出文件。
在这种情况下,zip 文件中将不包含额外的文件夹路径。
结果:
然后,当我们将包部署到Web App时,文件将被部署到
wwwroot/
文件夹中。更多详细信息,可以参考此文档:部署 Web 应用