通过VSTS中的CD部署时,.NET Core Webjob无法发布

时间:2018-06-21 09:22:03

标签: azure-devops azure-webjobs

我有一个dot net core 2.0控制台应用程序,我需要通过在VSTS中进行持续构建和部署,以Azure Webjob的形式发布它。我已经在Azure中创建了一个Web应用程序,并在VSTS中为控制台应用程序的项目定义了CI和CD任务。

问题在于,每当运行这些任务时,都会成功部署webapp,但不会部署webjob。但是,当我使用工件(在构建过程之后创建的zip文件夹)并将其手动上载到Azure webjob部分时,它就会被部署。

我认为使用Powershell脚本部署工件可能是一种解决方案,但我也尝试过Kudu的 zipdeploy API,但没有用。有人可以帮忙还是指向我参考,以提取从构建过程中生成的工件并使用CD任务进行部署,以便将Webjob与Webapp一起发布。

1 个答案:

答案 0 :(得分:0)

对于一般的Web应用程序,如果将Web作业项目链接到Web(在Visual Studio中右键单击Web应用程序>“添加”>“新建Azure WebJob项目/现有项目为WebJob”),则可以参考以下步骤:

  1. 创建新的构建定义
  2. 添加NuGet工具安装程序任务
  3. 添加NuGet还原任务(解决方案的路径,packages.config:***。sln)
  4. 添加Visual Studio生成任务(MSBuild参数:/ p:DeployOnBuild = true / p:WebPublishMethod = Package / p:PackageAsSingleFile = true / p:SkipInvalidConfigurations = true / p:PackageLocation =“ $(build.artifactstagingdirectory)\” )
  5. 添加“发布工件”任务(要发布的路径:$(build.artifactstagingdirectory))
  6. 队列建立
  7. 创建新的发布定义
  8. 添加部署Azure应用服务任务(包或文件夹:{web应用zip文件路径};选择使用Web部署发布)

否则:

  1. 创建新的构建定义
  2. 添加NuGet工具安装程序任务
  3. 添加NuGet还原任务(解决方案的路径,packages.config:***。sln)
  4. 添加Visual Studio构建任务(/ p:DeployOnBuild = true / p:WebPublishMethod = FileSystem / p:publishUrl =“ $(build.artifactstagingdirectory)\” / p:DeployDefaultTarget = WebPublish
  5. 添加必要的任务以构建Web作业项目(例如,Visual Studio构建)
  6. 添加复制文件任务以将Web作业的构建结果复制到Web应用程序已发布文件夹($(build.artifactstagingdirectory))中的适当文件夹中(对于连续的Webjob,App_Data / jobs / continuous;对于计划的和在线的,App_Data / jobs / triggered需求WebJobs)
  7. “添加存档文件”任务(要存档的根文件夹或文件:$(build.artifactstagingdirectory);要创建的存档文件:$(Build.ArtifactStagingDirectory)/ $(Build.BuildId).zip)
  8. 添加发布工件任务
  9. 创建新的发布定义
  10. 添加部署Azure应用服务任务(包或文件夹:{web应用zip文件路径};选择使用Web部署发布)