将多个Web项目合并为单个输出zip包

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

我正在使用Visual Studio Online并通过构建持续集成设置来完成工作。我所采用的方案要求将多个Web项目构建到单个Azure App Service部署中。当您创建新构建时,“开箱即用”的问题就是,Visual Studio构建任务似乎为解决方案中的每个项目创建一个单独的zip文件,然后Azure App Service Deploy任务会抛出一个错误,说明存在多个匹配模式的文件,即* .zip。

我想要做的是将所有这些项目构建到一个位置,将各个项目合并在一起,然后Azure App Service Deploy只有一个zip文件可以推送,我知道它可以做得很好。我的Visual Studio Build任务的MSBuild参数是/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"。我尝试删除PackageAsSingleFile属性,但它仍然创建了zip文件。

我希望在VSO中实现的场景,可能是使用不同的命令代码集吗?

msbuild azure-devops azure-app-service-envrmnt
1个回答
1
投票

听起来你需要一个PowerShell脚本或一些任务来在发布工件之前操纵文件和文件夹。

  1. Extract Files $(build.artifactstagingdirectory)\*.zip$(build.artifactstagingdirectory)\Merged
  2. Archive Files $(build.artifactstagingdirectory)\Merged$(build.artifactstagingdirectory)\Merged.zip
  3. 我们使用minimatch提取的Delete Files!/**/*.zip
  4. 更改您的Azure App服务部署以查找:$(System.DefaultWorkingDirectory)/**/Merged.zip

https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=vsts

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