我们有一个Visual Studio解决方案,其中包含一个WebAPI应用程序和一个MVC网站都使用共享的项目数据访问层。
我们需要将webAPI和网站分为两个单独的解决方案以用于Azure DevOps发布管道,但是我们不确定DAL需要存放在哪里,因为这两个项目都需要这样做,如果确实需要拆分它们。 有什么建议吗?
答案 0 :(得分:1)
方法1
如果我理解您的情况是正确的,我将让所有3个项目都保留在同一解决方案中,但让Azure Pipelines处理2个生成和发布。
一个用于WebApi的管道(构建WebApi.csproj),并将其部署到您拥有api主机的任何端点(例如App服务)。
用于网站(构建Website.csproj)的另一条管道(但具有相同的VS解决方案和GIT回购)并进行部署。
实际上,您可以使两个CI / CD流彼此依赖,因此一切都捆绑在一起(例如,在GIT中的master分支上的提交上触发)。
方法2
如果使用Azure App Service,则实际上可以跳过Azure Pipelines,并将回购直接链接到App Services(网站和WebApi),并指定应使用“ PROJECT”应用程序设置来构建哪个项目(请参见{{ 3}})。
方法3
另一种方法是将DAL项目分成其自己的Nuget程序包,然后在Web和API项目之间共享代码。但这将最终出现在3个VS解决方案中,我认为这不是理想的选择(如果我理解正确的情况)。