我认为这将是一个相当简单的任务,并且有相当多的文档,但我没有任何运气,并假设它几乎都已过时。
我有.NET Core MVC 6 Web App,我已经开发了一段时间,需要在Azure上为它设置一个WebJob。我想使用Azure提供应用程序已在使用的持续部署系统将其与应用程序一起部署。根据Kudu的说法,它有可能:
哪个州:
这在直接从Visual Studio部署时都适用 (WebDeploy),或通过git。
它引用了这个链接(https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-deploy-webjobs/),我一直试图这样做,但没有成功。
我有最新版本的Visual Studio 2015,.NET Core 1.0.0&工具和Azure SDK。
首先显而易见的是,我没有Azure文档屏幕截图中显示的脚手架选项,并且在找不到任何遗漏的依赖关系后,我试图按照描述手动设置它。
即使将所需文件放在指定位置(webjobs-list.json
和webjob-publish-settings.json
)并为我的项目配置它们,并将Microsoft.Web.WebJobs.Publish
添加到WebJob项目之后,Kudu也找不到WebJob通过持续部署系统。
我已根据我在那里找到的文档尝试了几种方法和变体,但我无法使其正常工作,所有其他SO问题都是一年之久。
有谁知道我做错了什么?这是否仍然可以使用最新版本的.NET Core MVC?
答案 0 :(得分:7)
WebJobs'文件存储在' App_Data / jobs / continuous'或者' App_Data / jobs / triggered'文件夹,所以我可以用来部署Web App和WebJob的一种方法是手动复制所有WebJobs'构建期间这些文件夹所需的文件。我认为这将适合VS工具的更新。
我的解决方案与您的解决方案略有不同,因为我使用Visual Studio Team Services构建并将我的应用程序发布到Azure,但概念是相同的。您可以在Visual Studio中使用post build事件来运行将这些文件复制到作业的脚本。文件夹中。
以下是我在VSTS构建定义中配置的步骤:
命令行任务: 工具: dotnet 参数:恢复
Visual Studio构建任务: 解决方案: ** \ MyApp.sln 平台: $(BuildPlatform) 配置: $(BuildConfiguration) Visual Studio版本: Visual Studio 2015
命令行任务: 工具: dotnet 参数:发布-c $(BuildConfiguration)
命令行任务: 工具: dotnet 参数:发布-c $(BuildConfiguration)$(Build.SourcesDirectory)\ src \ MyApp.Jobs \ project.json
复制文件任务(这是技巧): 源文件夹: src / MyApp.Jobs / bin / $(BuildConfiguration)/netcoreapp1.0/publish/ 内容: ** 目标文件夹: src / MyApp.Web / bin / $(BuildConfiguration)/netcoreapp1.0/publish/App_Data/jobs/triggered/MyJobName /
存档文件任务: 要归档的根文件夹(或文件): src / MyApp.Web / bin / $(BuildConfiguration)/netcoreapp1.0/publish/ 前缀根文件夹名称以归档路径:取消选中 存档类型: zip 要创建的存档文件: website.zip 替换现有存档:已选中
复制文件任务: 源文件夹: 内容: ** / * .zip 目标文件夹: $(Build.ArtifactStagingDirectory)
发布构建工件任务: 路径发布: $(Build.ArtifactStagingDirectory) 工件名称:删除 工件类型:服务器