我有几个C#项目,每个项目都在其自己的git存储库中。所有这些项目都使用一个共享项目,该共享项目也位于其单独的git存储库中。现在,我想将共享项目作为子模块添加到主项目中。
我的第一个想法是为子模块创建一个特殊的目录,该目录表示这些子模块是主项目的依赖项:
main repo root
+ lib
| + submodule1 repo
| | ...
| | + submodule1.shproj
+ src
...
main.csproj
不幸的是,当我这样做时,Visual Studio尝试两次构建子模块的每个文件,因为该文件既包含在子模块中,也包含在主项目中(因为它位于主项目的子目录中)。唯一的解决方案是从主项目中排除lib dir,这有点打扰了这个不错的概念……这引出了我第二个目录布局的想法:
main repo root
+ main_project
| ...
| + main.csproj
+ submodule1
| ...
| + submodule1.shproj
+ main.sln
这可能会起作用,但是当我打开此类存储库时,尚不清楚,哪个项目是主要项目,哪个项目只是一个依赖项:(
使用共享项目时,您更喜欢哪种目录结构?是否有关于此主题的最佳实践?