有有我的天青WebJob,而无需点击右键自动部署并选择“发布为天青WebJob”每一次的方法吗?即当我检查,我的解决方案将被自动部署到Azure的门户网站webjob节
是的你可以。
布雷迪法莫替丁已经撰写了有关这一在blog post(还没有尝试过我自己)。
从我所收集的TL; DR;总结如下:
文件添加一个名为webjobs.props到Web应用程序项目或控制台应用程序,你的属性文件夹要发布
在此之后,所以ManagementCertificate
,SubscriptionId
和PublishSettingsPath
都充满了正确的数据编辑文件。
现在,你应该能够使用命令发布的文件
msbuild WebJobDemo.Web.csproj /p:DeployOnBuild=true /p:PublishProfile=WebJobDemo /p:VisualStudioVersion=12.0 /p:Password=asdfasdf
(注意,POST是VS2013写的)
当然,你可以在每次东西进行检查,以你的资料库VSTS(或与此有关的任何其他构建/部署工具)自动执行此。
如何做到这一点通过命令行VSTS A(而不是完整的)答案可以在这个答案中找到:https://stackoverflow.com/a/45703975/352640
你可以做到这一点通过Continuous Integration Build(触发一次构建,检查)。
关于部署WebJob,您可以通过生成与/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.stagingDirectory)"
参数的Visual Studio生成任务的包。
然后通过Azure的应用程序部署任务进行部署。
更多信息:Deploying and Schedule Azure WebJobs from VSTS to Azure Web App
当我试图做到这一点,我发现有对dotnet的核心项目,截至目前没有任何工具支持。所提出的webjobs.props / MSBuild的解决方案是特定的所有的dotnet框架。
不过,我也发现了一个webjob可以是任何的本地计算机上的可执行文件(可能是node.js的或只是一个批处理命令)。
关键是要了解如何WebJobs被主机识别:
run.cmd
文件。对于DOTNET芯这将是dotnet MyDll.dll %*
(%*
来传递参数输出重定向等从主机向下)。run.cmd
文件需要位于无论是在app_data/jobs/continuous/[NameOfJob]
或app_data/jobs/triggered/[NameOfJob]
。对于触发工作,你也可以使用下面描述settings.job
一个here文件添加日程表。run.cmd
它会被识别为WebJob现在,使用VSTS无论运行时框架的请按照下列步骤部署webjob:
settings.job
。app_data/jobs/[triggered/continuous]/[nameOfJob]
和你的可执行文件复制到最低文件夹。确保run.cmd
是直接在[nameOfJob]/
目录下仅此而已。
在Visual Studio中,以与Web项目一起启用自动WebJobs部署右键单击Solution Explorer中的Web项目,然后单击:添加>现有项目如天青WebJob并创建WebJob。
更多详细信息可通过MS的文章中找到 - webjobs-dotnet-deploy-vs