繁体   English   中英

使用VSTS部署Azure WebJob

[英]Deploy Azure WebJob using VSTS

我在使用Visual Studio Team Services(VSTS)部署Azure WebJob时遇到了一些问题。

WebJob似乎已成功部署,但它破坏了托管在同一App Service中的Azure网站! 如果我使用VS2013部署,我没有这个问题。

这是我的构建任务,它生成WebJob部署包:

构建任务 - 生成Azure WebJob部署包

这是我的部署任务:

部署WebJob任务

部署Azure WebJob时没有错误。 如果我去Azure门户,我看到WebJob就在那里,它运行成功。 WebJob文件按预期复制到wwwroot\\App_Data\\jobs\\triggered\\RemoveExpiredDids文件夹中,但问题是其他一些文件将被复制到wwwroot\\App_Data\\bin文件夹中,这会破坏已部署到的现有网站那个App服务!!!

所以我决定找出为什么会发生这种情况。 下载并解压缩部署包后,我看到有2个文件夹( app_databin )和调度程序文件( settings.job ):

WebJob部署包

这解释了为什么某些程序集被copped到App Service的wwwroot\\App_Data\\bin中。 奇怪的是,从VS2013部署时不会发生这种情况! 我查看了MSBuild日志,找到了以下行:

由于跳过指令“SkipBinFolderOnDeploy”,跳过了对象dirPath([app service name] \\ bin)。

总结一下,从VSTS部署Azure WebJob时会包含bin文件夹,但从VS2013部署它时会被排除。

所以我的问题是: 如何在使用VSTS时阻止部署bin文件夹? 是否有任何MSBuild参数/标志来执行此操作?

我也遇到过这个问题。

我发现的最新方法是在发布定义(附加参数)中创建azure deploy任务时使用Web部署操作设置 ,-skip:Directory =(在这种情况下,它将是-skip:Directory ='\\\\ bin') 。 我已经看到这确实排除了更新操作( 结果 )中的bin文件夹。

如果这对您有任何帮助,请告诉我。

请参阅以下方法将webjob部署到azure:

  1. 修改Visual Studio Build任务以使用FileSystem部署webjob(MSBuild参数: /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="$(build.artifactstagingdirectory)\\\\WebJob" /p:DeployDefaultTarget=WebPublish
  2. 添加删除文件任务以释放定义以删除bin文件夹(源文件夹: $(System.DefaultWorkingDirectory)/WebJobVnext/drop/WebJob ); 内容: bin
  3. 修改Azure App Service Deploy任务(1.取消选中使用Web Deploy发布选项.2。包或文件夹: $(System.DefaultWorkingDirectory)/[artifact name] /drop/WebJob

我终于能够解决它,感谢@ starain-MSFT指出我正确的方向。 不过,我不得不做一些小改动。 这是创建部署包的任务:

生成Azure WebJob部署包

MSBuild参数:

/ p:DeployOnBuild = true / p:WebPublishMethod = FileSystem / p:DeployDefaultTarget = WebPublish / p:Configuration = $(BuildConfiguration)/ p:OutputPath =。\\ bin \\ /p:publishUrl="$(build.artifactstagingdirectory)\\temp \\ WebJob”

这里与@ starain-MSFT答案的区别在于我必须添加/p:OutputPath=参数,否则我会收到以下错误:

未为项目设置OutputPath属性

生成包后,我删除bin文件夹并压缩它(这减少了构建时间)。

这是我的部署任务:

使用VSTS部署Azure WebJob

请注意, $(DeploymentPackagePath)是包含部署包的zip文件的路径,如前所述。 将软件包部署为zip文件或者解压缩并部署文件夹无关紧要,它可以兼顾两种方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM