我想通过dotnet core 2.0 commandline application
定义部署我的webjob('release'
)。我的drop
文件夹包含名为“MyWebjob.zip”的webjob。我想将其复制到我所有任务存在的目录下的webapps
D:\home\site\wwwroot\App_Data\jobs\continuous>
以下是我现有的release
定义
任何人都可以告诉哪个副本作业适合将内容从drop
文件夹复制到“wwwroot\App_Data\jobs\continuous
”目标吗?
或者有没有简单的方法使用VSTS部署webjob(dotnet core 2.0)?
注意:由于某些原因我无法使用FTP,因为我们的项目已启用“持续集成”。
答案 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
答案 1 :(得分:1)
您可以将自定义目标添加到工作程序.csproj文件中。
<Target Name="UpdateWebJobsPublishDir" BeforeTargets="ComputeFilesToPublish">
<PropertyGroup>
<PublishDir>$(PublishDir)App_Data/jobs/continuous/$(ProjectName)/</PublishDir>
</PropertyGroup>
</Target>
上述vill在发布输出目录之前对其进行更新。在VSTS / Azure DevOps中,您只需将项目部署为普通的webapp,它将放置在正确的文件夹中。