最好用一个例子来描述我的问题。
假设我有一个项目“A”。
我还有一个依赖于“A”的项目“B”。
另一个项目“C”也依赖于“A”。
我的“主要”项目依赖于“B”和“C”。也可能是它也直接依赖于“A”。
看起来有点像 "dreaded diamond of inheritance"当“主要”==“D”
这些是我的要求:
我希望能够在“main”的解决方案中编辑项目“A”、“B”和“C”的内容并提交更改(即我不想只包括DLL 还有代码)。但是由于“B”和“C”都依赖于“A”,因此应该强制它们引用相同的提交。
项目“A”、“B”和“C”很可能也会被其他项目引用,因此我不能承担项目“main”的工作目录的所有权。
<还应该可以将每个项目的存储库与外部存储库同步。
项目“A”、“B”、“C”和“main”应该是
我需要如何设置我的存储库才能完成此操作?
最佳答案
不要(ab)为此使用 git 或任何版本控制系统。
使用 NuGet .
您不想直接包含其他项目。相反,将每个依赖项打包到一个 .nuget 包中,并将其用于依赖项处理。虽然子模块似乎是解决问题的方法,但实际上,您最好使用适当的依赖管理,而不是仅仅包含其他项目。
TeamCity和其他 CI 系统,甚至 TFS,允许您自动构建新的 nuget 包,TeamCity 也可以充当 nuget 服务器。
如果您不想使用“真正的”NuGet 服务器,您也可以只使用 Intranet 上某处的共享驱动器。
关于visual-studio-2010 - 如何设置我的 git 存储库以便能够轻松地在 Visual Studio 中重用项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19682007/