我有一个Visual Studio 2017解决方案,包含一个ASP.NET Web应用程序项目(称为UI)和一个Azure WebJob项目(称为WebJobs)。我已将两者都配置为从Visual Studio(右键单击,发布)部署到Azure到同一个App Service。该解决方案还配置为每当我推送到VSTS时构建。
我想设置VSTS以在成功构建时同时部署这两个项目,但我遇到了问题。
我的理解是,要实现这一点,我需要使用"部署Azure应用服务"创建一个与我的构建定义链接的发布定义。任务添加到管道中。我试过这个并得到一个错误,因为在artifacts文件夹中找到了多个.zip文件,它建议我使过滤器更具体,所以我更改了"包或文件夹"从$(System.DefaultWorkingDirectory)/**/*.zip
到$(System.DefaultWorkingDirectory)/**/UI.zip
的选项。这解决了错误,但现在显然它只是部署我的应用程序(UI)。
我的下一步是尝试为WebJob项目创建一个单独的Environment,并指定$(System.DefaultWorkingDirectory)/**/WebJobs.zip
作为Package。现在两个环境都成功了#34;部署,但它打破了我的应用程序,我很确定它已经将WebJob部署在应用程序的顶部(我不知道如何确认这一信念......)。
我注意到当您向发布定义添加环境并选择模板时,在" Azure App Service Deployment"它说:"将您的应用程序部署到Azure App Services。从Windows应用程序,Linux,容器,功能应用程序或 Web作业"中选择Web App但是当选择此模板时,WebJob并未列在"应用类型"下降!
我在网上找到了一些关于从VSTS部署WebJobs的资源,但它们都已过时,所描述的选项不再与VSTS中的选项相匹配。
我的问题因以下David Ebbo和starian chen的答案而得到解决。
首先,必须右键单击Visual Studio中的 Web App 项目,然后选择添加>现有项目为Azure WebJob 并按照向导进行操作。接下来,您必须确保VSTS部署任务仅通过更新程序包或文件夹路径筛选器找到要部署的一个.zip程序包,以便它只找到 Web App '一个;就我而言,它是$(System.DefaultWorkingDirectory)/**/UI.zip
。
非常感谢@DavidEbbo和@starianchen的帮助!
答案 0 :(得分:5)
您只需右键单击Web App并选择:
即可创建WebJob项目Add / New Azure WebJob project
或者,如果您已在解决方案中安装了WebJobs项目:
Add / Existing WebJob project
一旦这样做,发布Web App会自动发布它所属的WebJob。这一切都发生在一个zip文件中,在VSTS中没有什么特别的事情要做。一旦这样做,不要尝试单独发布WebJob项目。
答案 1 :(得分:2)