子模块依赖项和 Visual Studio 项目 - 创建具有非线性依赖项的体系结构



不确定这是否应该在堆栈溢出上,但我目前在为我的 C# 项目创建架构时遇到问题。

主要结构

有三个存储库:

  • 数据存储
  • 解析(实质上是填充数据存储(
  • 工作(使用数据存储(

working存储库需要数据存储为项目(作为 git 子模块包含在内(。

parsing存储库还需要数据存储为项目(作为 git 子模块包含在内(。

data storage存储库独立于所有其他存储库。

<小时 />

目标

将创建使用parsing存储库和working存储库的第四个存储库。请注意,这两个存储库都依赖于data storage存储库

渔获

如果parsing存储库依赖于与working存储库不同的data storage存储库版本,该怎么办?我们不希望这种情况发生。

问题

如果子模块data storage版本不同,如何防止任何用户在 Visual Studio Professional 或 Git 中包含这两个项目。您将如何构建存储库?您会将data storage存储库作为子模块包含在两个存储库中,还是仅包含 .dll?

我们决定将它们全部合并到一个存储库中。

可能的选择是:

  • 删除所有子模块并留下错误的引用 --> 用户必须自己设置交叉引用

    • 这意味着,克隆一个存储库可能会导致项目不可构建,因为项目引用设置为不存在的项目
  • 将所有内容合并到一个存储库中,解决版本问题和引用问题,并提供开箱即用的可构建存储库

    • 但是失去了分离的 Git 历史以及分离的存储库和分支的优势

最新更新