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

博观而约取,厚积而薄发。这篇文章主要讲述由于ZIP的结构,使用kudu ZipDeploy的Azure webapp部署失败相关的知识,希望能为你提供帮助。
我正在尝试将.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:uildssolution中,那么打包的构建文件将放在d:uildssolutionprojectobjdebugPackagePackageTemp中。该网站的内容在以下路径D_CuildssolutionprojectobjdebugPackagePackageTempContent下进入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
答案我了解您正在尝试使用CI CD管道在Azure Web应用程序中部署Web应用程序。
URL下方将帮助您部署Zip
https://docs.microsoft.com/en-us/azure/app-service/deploy-zip
注意:MSBUILD Zip可能无法在所有部署模型中运行
【由于ZIP的结构,使用kudu ZipDeploy的Azure webapp部署失败】Zip配置MSBuild.exe / p:configuration =“release”; platform =“any cpu”; WebPublishMethod = Package; PackageFileName =“ MyFolderpackage.zip”; DesktopBuildPackageLocation =“ MyFolderpackage.zip”; PackageAsSingleFile = true ; PackageLocation = “ MyFolder文件 package.zip”; DeployOnBuild = TRUE; DeployTarget =封装

    推荐阅读