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



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

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

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

方法1

如果我理解你的情况是正确的,我会让所有3个项目都留在同一个解决方案中,但让Azure Pipelines处理2个构建和发布。

WebApi的一个管道(构建WebApi.csproj(,并将其部署到您拥有api宿主的任何端点(例如应用程序服务(。

网站的另一个管道(但相同的VS解决方案和GIT回购((构建Website.csproj(并部署它。

实际上,您可以使两个CI/CD流相互依赖,因此所有内容都绑定在一起(例如,在GIT中的主分支上触发提交(。

方法2

如果你使用Azure应用程序服务,你实际上可以跳过Azure管道,将你的回购直接链接到你的应用程序服务(网站和WebApi(,并指定应该使用"项目"应用程序设置构建哪个项目(请参阅https://github.com/projectkudu/kudu/wiki/Deploying-inplace-and-without-repository了解更多信息(。

方法3

另一种方法是将DAL项目分离为自己的Nuget包,然后在Web和API项目之间共享代码。但最终会出现3个VS解决方案,我认为这并不理想(如果我理解正确的话(。

最新更新