You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6项目拆分至两个Azure DevOps仓库的方案咨询

两种方案分析与建议

一、保留单仓库,配置独立流水线

这是最直接且低复杂度的方案,完全不需要调整仓库结构:

  • 针对两个解决方案分别创建Azure DevOps流水线,构建阶段指定各自的解决方案路径即可,比如:
    • Solution1流水线执行:dotnet build ./Solution1/Solution1.sln
    • Solution2流水线执行:dotnet build ./Solution2/Solution2.sln
  • 共享的Lib、Packages目录留在原仓库,两个流水线构建时都能直接访问,无需额外处理依赖
  • 可通过Azure DevOps的路径触发规则优化构建触发逻辑:
    • 给Solution1的流水线设置触发路径:Solution1/**、Lib/**、Packages/**,只有这些目录变更时才触发构建
    • 给Solution2的流水线设置触发路径:Solution2/**、Lib/**、Packages/**
  • 优势:共享代码修改无需跨仓库同步,维护成本低;CI/CD配置简单,无需额外依赖拉取步骤
  • 劣势:若两个解决方案迭代节奏差异极大,可能会有少量不必要的构建触发(但通过路径规则可大幅缓解)

二、拆分为两个业务仓库+共享仓库

如果两个解决方案属于独立业务、需分团队维护,可考虑拆分:

  • 将共享的Lib目录单独抽成一个独立仓库,打包为NuGet包上传到Azure DevOps私有NuGet源,两个业务仓库通过NuGet引用该包
  • Packages目录若为第三方依赖,直接通过NuGet还原即可,无需共享;若为自定义工具包,同样可打包为NuGet包或用Git子模块引用(但子模块在流水线中需额外配置拉取步骤,复杂度较高)
  • 优势:两个业务仓库完全独立,权限管理更精细,迭代互不干扰
  • 劣势:共享代码修改需先更新独立仓库、再在两个业务仓库更新依赖,流程繁琐;CI/CD需配置依赖拉取步骤,增加维护复杂度

最终建议

优先选择保留单仓库并配置独立流水线,除非两个解决方案是完全独立的业务、未来有明确的分团队维护需求。这种方案既能满足分别部署的要求,又能最小化共享代码的维护成本。

内容的提问来源于stack exchange,提问作者jaykzoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 09:09:50