如何在大型代码库中组织外部库

时间:2011-04-02 10:47:59

标签: c# assemblies

只是想知道社区如何组织.net DLL库在大型团队中工作并使用数十种不同的解决方案?

我特别好奇人们是否选择了某种“库”文件夹,其中包含所有项目使用的所有外部DLL,以及人们是否对其DLL进行版本控制,或者只是在新版本的DLL发生时覆盖DLL并且希望下次重新编译的.NET解决方案能够解决这个问题

我也不清楚你是否可以简单地将不同版本的DLL放入一个文件夹并让解决方案选择它或者.net强制你使用特定版本(注意:我们不需要签署任何一个我们的集会)

2 个答案:

答案 0 :(得分:4)

我的存储库中有一个专用文件夹,用于第三方库和DLL,所有项目都可以参考。

关于版本控制的事情我是根据具体情况做的。对于一些没有经常更新的库或者我不计划更新到最新版本的库,如果它出来的话,我只是将DLL放在那里。
但是,对于经常更新的主要库,我通常会执行以下模式:

<LibName>/Current/<LibName>.dll
<LibName>/v1.1/<LibName>.dll
<LibName>/v1.2/<LibName>.dll

大多数项目只会引用“当前”文件夹中的dll。但是,如果出现问题,他们可以引用较旧的问题。这样做的好处是,如果您发现问题,可以很容易地切换引用以查看它是否存在于旧版本中。

注意:如果项目依赖于另一个项目,则需要在项目之间使用相同的版本,因此最好尽量使用最新的项目。

答案 1 :(得分:0)

目前通常会有一个Libs目录,该目录会使用其余解决方案进行检查,并对每个项目的DLL进行相对引用。只要新版本具有相同的名称,它就会被选中 - 只需确保解决方案中的所有项目都引用相同的路径。

继续前进,新兴的最佳做法是使用NuGet来管理您对第三方库的依赖关系。我们现在才刚刚开始部署它 - 已经非常适合像Prism这样的外部库,但也允许您为自己的共享库创建中央存储库。