【问题标题】:Visual Studio using GIT repository Publishing with API and Website in one Solution使用 GIT 存储库的 Visual Studio 在一个解决方案中使用 API 和网站发布
【发布时间】:2018-12-13 16:47:42
【问题描述】:

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

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

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

【问题讨论】:

  • 我还没有仔细研究发布管道,但我不确定您为什么需要单独的解决方案。您使用哪些任务来生成构建工件以及您正在使用哪些部署任务?例如,对于 Azure App Service Deploy 任务,您只需引用构建生成的特定 ZIP 包。

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


【解决方案1】:

方法 1

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

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

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

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

方法 2

如果您使用 Azure App Service,您实际上可以跳过 Azure Pipelines 并将您的 repo 直接链接到您的 App Services(网站和 WebApi),并指定应该使用“PROJECT”应用程序设置构建哪个项目(请参阅@987654321 @了解更多信息)。

方法 3

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

【讨论】:

  • 感谢 Jacob 提供了非常有帮助的答案。方法 1 是我们的方法。
猜你喜欢
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多