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

时间:2019-10-10 07:25:31

标签: c# git visual-studio architecture

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

主要结构

共有三个存储库:

  • 数据存储
  • 解析(基本上是填充数据存储)
  • 工作(使用数据存储)
  

working存储库需要将数据存储作为一个项目(包含在git子模块中)。

     

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

     

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


目标

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

抓住

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

问题

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

1 个答案:

答案 0 :(得分:0)

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

可能的选择是:

  • 删除所有子模块并留下虚假引用->用户必须自行设置交叉引用

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

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