我正在尝试在VSTS上的单个版本定义中部署多个webjobs。
我的问题是我的webjobs中包含的文件可以更改(添加/更新/删除)。默认情况下,使用任务Azure app service deploy
部署新版本时,不会从服务器中删除现有文件。这导致我的webjob中的文件被弃用,停留在我的服务器上并导致错误。
为了解决我的问题,我尝试启用“删除目标位置的其他文件”。但由于我必须在单独的任务中部署每个webjob(Azure app service deploy
仅支持单个Web包),因此每个连续部署都会删除先前部署的webjob的文件。
如何轻松解决这个问题?
目前我唯一的猜测是通过powershell连接到网络应用程序,并使用命令行开关Remove-AzureWebsiteJob
删除现有的webjob。
但我对此的主要关注是删除整个webjob,我认为这也将删除他们的日志和执行历史......
答案 0 :(得分:1)
使用wawsdeploy tool,有一种方法可以做到这一点,但没有详细记录。
从Chocolatey获得该工具后:
wawsdeploy . c:\folderwithyourprofile\YourApp.PublishSettings /t D:\home\site\wwwroot\App_Data\jobs\continuous\YourJob /d
此处,/d
会导致它删除该一个文件夹中的所有未知文件 ,因此它不会触及您的其他WebJobs。您可以尝试在没有/d
的情况下首先运行它以熟悉该工具,并确保在开始删除文件之前将文件放在正确的位置。
请注意,只使用msdeploy命令行就可以执行类似的操作,但它需要一组极其复杂的参数。有关详细信息,请参阅我的post。