我正在.NET中开发一个项目(使用C更具体一些)。
将Visual Studio用作IDE。
使用Mercurial进行版本控制。
我将使用一些第三方库:
第三方.foo.dll
第三方.bar.dll
第三方.baz.dll
以及一些内部图书馆:
A公司
B公司
C公司
D公司(参考第三方图书馆)
E公司(参考A公司)
项目本身将包含以下组件:
项目核心
project.datamodel(参考内部/第三方库)
project.gui(参考核心、数据模型和内部/第三方库)
project.pluginone(参考核心、数据模型和内部/第三方库)
project.plugintwo(参考核心、数据模型和内部/第三方库)
*可以是任意数量的插件*
我对mercurial比较陌生,所以我不知道如何为这样的项目构建存储库,
有很多相互连接的组件。
内部图书馆是相当独特的,所以我想说,它们中的每一个都应该有自己的存储库。但是,其中一些使用了其他人提供的功能。如何管理这些依赖项?
项目插件应该与其他插件不同,所以我想每个插件都有自己的存储库。对于解决方案布局和存储库布局,应如何管理对内部/第三方库以及项目其余部分(project.datamodel和project.core)的依赖关系?
所以基本上,对于这样的项目,什么是构建的最佳方式:
(A)我的Visual Studio解决方案
(B)我的源代码管理存储库/存储库