使用GIT存储库的Visual Studio在一个解决方案中使用API​​和网站发布

时间:2018-12-13 16:47:42

标签: c# visual-studio azure azure-devops azure-pipelines

我们有一个Visual Studio解决方案,其中包含一个WebAPI应用程序和一个MVC网站都使用共享的项目数据访问层。

  • 解决方案
    • WebAPI
    • DAL
    • 网站

我们需要将webAPI和网站分为两个单独的解决方案以用于Azure DevOps发布管道,但是我们不确定DAL需要存放在哪里,因为这两个项目都需要这样做,如果确实需要拆分它们。 有什么建议吗?

1 个答案:

答案 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解决方案中,我认为这不是理想的选择(如果我理解正确的情况)。