【发布时间】:2012-11-24 02:15:28
【问题描述】:
我正在寻找在多个开发团队(不在同一个办公室/存储库中)之间共享 .net 程序集(都处于持续开发阶段)的最合适的解决方案。
第一个团队在一个名为core.dll 的程序集中开发并打包了许多有用的通用功能,他们在许多应用程序和库中引用(作为一个 VS 项目)。该程序集又引用了非常标准的程序集,例如(system.dll 等...)加上log4net.dll(作为其存储库中的第三方):
- Core.dll
- System.dll
- ...
- Log4Net.dll
在我这边,我开发了一个更高级别的程序集 Library.dll,我真的很想将 Core.dll 中开发的东西合并到其中,而不是维护重复的代码:
- 库.dll
- System.dll
- ...
- Log4Net.dll
- Core.dll
最后,第一个团队反过来又对我的代码感兴趣来开发他们自己的应用程序:
- 应用程序.exe
- System.dll
- ...
- Log4Net.dll
- Core.dll
- Library.dll
这看起来像是在两个开发团队之间保持松散耦合:
-
1234563党很稳定)
1234563
目前我想保持我们团队之间的松散耦合是让他们为我提供隐藏的“log4net”引用,如下所示:
// Create a single assembly hiding for Log4Net
ILMerge /out:DCore.dll Core.dll Log4Net.dll /internalize
我也这样做:
// Create a single assembly hiding for Log4Net and Core
ILMerge /out:DLibrary.dll Library.dll DCore.dll Log4Net.dll /internalize
我不知道这个解决方案是否合适,我们热烈欢迎任何其他保留我们两个团队相互联系的解决方案。
NB1:我不认为将库部署到 GAC 是一个好的解决方案,因为 Core.dll 和 Library.dll 仍处于持续开发阶段,缓存会随着太多无用的并行版本而增长。
NB2:我已经阅读了这个thread,但我对 NuGet 不太了解,也不知道这里是否合适。
【问题讨论】:
标签: .net