由于ZIP的结构,使用kudu ZipDeploy的Azure webapp部署失败

问题描述 投票:0回答:1

我正在尝试将.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运行时,它会将内容放入wwwroot/Content/D_C/builds/solution/project/obj/debug/Package/PackageTemp/Content/的webapp中。

我正在运行以构建项目的命令是:

msbuild.exe /nologo /v:minimal /T:Package /p:Configuration="Debug;VisualStudioVersion=12.0" project.csproj

我希望有人知道如何通过以下之一(优惠顺序)实现这一目标:

  • 一个msbuild参数来构建网站并创建一个简单的内容ZIP
  • 一个kudu设置,它将使用msdeploy而不是直接复制来部署当前ZIP
  • 自定义kudu部署脚本,将通过msdeploy而不是文件副本进行部署
  • msbuild目标自定义,将创建兼容的ZIP
.net azure deployment msbuild kudu
1个回答
-1
投票

我了解您正在尝试使用CI CD管道在Azure Web应用程序中部署Web应用程序。

URL下方将帮助您部署Zip

https://docs.microsoft.com/en-us/azure/app-service/deploy-zip

注意:MSBUILD Zip可能无法在所有部署模型中运行

Zip配置MSBuild.exe / p:configuration =“release”; platform =“any cpu”; WebPublishMethod = Package; PackageFileName =“\ MyFolder \ package.zip”; DesktopBuildPackageLocation =“\ MyFolder \ package.zip”; PackageAsSingleFile = true ; PackageLocation = “\ MyFolder文件\ package.zip”; DeployOnBuild = TRUE; DeployTarget =封装

© www.soinside.com 2019 - 2024. All rights reserved.