小编boj*_*ngo的帖子

Microsoft.Web.WebJobs.Publish在部署包中生成重复的程序集

我有大量的Azure WebJob,它们都部署到单个Azure App Service,以及同一个Azure App Service上的网站。每个WebJob都使用WebJobs SDK和Microsoft.Web.WebJobs.Publish nuget包(我们是1.0.13版的最新版本)来打包它们以进行部署。以下是我们在CI构建(VSTS)中用于生成部署包的MSBuild参数:

/p:DeployOnBuild=true /p:PublishProfile=Release /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation=$(Build.StagingDirectory)

这将产生一个与“ Azure Web Service Deploy” VSTS任务正常工作的程序包(因为WebJobs可以作为WebJobs正常运行),这不是问题。

问题是.zip文件包复制了所有WebJob程序集。这些重复最终将其复制到Azure应用服务中。

每个WebJob软件包的.zip文件中的文件夹结构为:

- Content/[build agent full path]/
     - app_data/jobs/continuous/[web job name]/[assembly files]
     - bin/[assembly files]
Run Code Online (Sandbox Code Playgroud)

造成问题的原因有3个:

  1. 我们已经开始调查与安全厂商的合作伙伴,后者将对我们的部署程序包进行静态分析。此重复会导致报告问题。
  2. 由于将bin/[assembly files]其发布到App Service,因此它们与网站的程序集相互混合,这些程序集也已部署到同一App Service。
  3. 通过在这些部署程序包中转移所有这些额外的膨胀,会减慢我们的构建/发布时间。我的团队练习“持续交付”,并希望管道能够很快

那么,为什么Microsoft.Web.WebJobs.Publish包bin/[assembly files]中除了必需的之外又添加了app_data/jobs/continuous/[WebJobName]/[assembly files]?更重要的是,如何防止包装过程包括在内bin/[assembly files]

我真的很讨厌不得不添加构建步骤来拆分压缩后的软件包,然后将它们放回去而又不会产生多余的垃圾,或者我不得不想出一种手工制作发布软件包的方法。您有1个工作,Microsoft.Web.WebJobs.Publish!:)

msbuild azure msdeploy azure-webjobs azure-webjobssdk

6
推荐指数
1
解决办法
636
查看次数