【发布时间】:2019-09-12 03:59:34
【问题描述】:
我正在尝试将 .NET Framework 站点的部署过程更新为 Azure WebApp。我们之前使用的是Publish-AzureWebsiteProject PowerShell cmdlet,但它正在被逐步淘汰。因此,我们尝试通过最近发布的Publish-AzWebApp PowerShell cmdlet 使用 kudu 的 zipdeploy 功能。就将文件传输到 Azure 而言,一切正常,但在将 ZIP 解压到正确位置时却失败了。
当我在构建服务器上使用“Package”目标构建站点时,它会生成一个 ZIP 结构以供 MSDeploy 使用。这不是 zipdeploy 方法所期望的格式。 MSDeploy ZIP 文件包含部署 XML,实际内容被深度嵌套到表示原始位置的路径中。 Zipdeploy 似乎想要一个网站内容根目录的简单存档,因此它在提取后将文件从存档复制到文字路径中。
因此,例如,如果我的 Visual Studio 解决方案位于 d:\builds\solution 中,那么用于打包的构建文件将放在 d:\builds\solution\project\obj\debug\Package\PackageTemp 中。该站点的内容进入以下路径D_C\builds\solution\project\obj\debug\Package\PackageTemp\Content 下的ZIP。因此,当 zipdeploy 运行时,它会将内容放入 webapp 中的wwwroot/Content/D_C/builds/solution/project/obj/debug/Package/PackageTemp/Content/。
我正在运行的构建项目的命令是:
msbuild.exe /nologo /v:minimal /T:Package /p:Configuration="Debug;VisualStudioVersion=12.0" project.csproj
我希望有人知道如何使用以下方法之一(优先顺序)来实现这一目标:
- 用于构建站点并创建简单内容 ZIP 的 msbuild 参数
- 将使用 msdeploy 而不是直接复制部署当前 ZIP 的 kudu 设置
- 一个自定义 kudu 部署脚本,将通过 msdeploy 而不是文件副本进行部署
- 将创建兼容 ZIP 的 msbuild 目标自定义
【问题讨论】:
标签: .net azure deployment msbuild kudu