dotnet core 2.0 webjob部署 - VSTS

时间:2018-02-06 10:31:43

标签: azure-devops azure-webjobs azure-pipelines azure-pipelines-release-pipeline

我想通过dotnet core 2.0 commandline application定义部署我的webjob('release')。我的drop文件夹包含名为“MyWebjob.zip”的webjob。我想将其复制到我所有任务存在的目录下的webapps

D:\home\site\wwwroot\App_Data\jobs\continuous>

以下是我现有的release定义

的快照

enter image description here

任何人都可以告诉哪个副本作业适合将内容从drop文件夹复制到“wwwroot\App_Data\jobs\continuous”目标吗?

或者有没有简单的方法使用VSTS部署webjob(dotnet core 2.0)?

注意:由于某些原因我无法使用FTP,因为我们的项目已启用“持续集成”。

2 个答案:

答案 0 :(得分:2)

您无法使用这些任务来部署webjob。

如果您保留App_Data\jobs\continuous文件中的文件夹结构(MyWebjob.zip),则可以通过Azure App Service Deploy任务将其部署到azure Web应用程序(应用类型:Web App;应用服务名称:[your app service];包或文件夹:[that zip file];选中Publish using Web Deploy选项)。

否则,我建议您可以通过提取文件复制文件来组织文件夹结构,然后通过 Azure App Service Deploy任务<进行部署/ strong>(包或文件夹:[App_Data parent folder];取消选中使用Web Deploy选项发布。)

您还可以通过Kudu API上传文件(首先通过提取文件任务提取zip文件)

有一些线程可以帮助您在VSTS中调用Kudu API。

Remove files and foldes on Azure before a new deploy from VSTS

How to access Kudu in Azure using power shell script

答案 1 :(得分:1)

您可以将自定义目标添加到工作程序.csproj文件中。

  <Target Name="UpdateWebJobsPublishDir" BeforeTargets="ComputeFilesToPublish">
    <PropertyGroup>
      <PublishDir>$(PublishDir)App_Data/jobs/continuous/$(ProjectName)/</PublishDir>
    </PropertyGroup>
  </Target>

上述vill在发布输出目录之前对其进行更新。在VSTS / Azure DevOps中,您只需将项目部署为普通的webapp,它将放置在正确的文件夹中。