我们有一些通用库(C#,但我想这不是特定于平台或语言的),我们称它们为 A、B 和 C。库 A 引用了 B 和 C,库 B 引用了第三方 DLL,库 C 独立。三个独立项目背后的想法是每个库都有不同的功能,但库 A 随着时间的推移已成为几乎每个客户端应用程序都引用的“包罗万象”的通用库。只有少数应用程序也引用了 B 和/或 C 而没有 A。
我们正在尝试改进我们的源代码控制约定,我们正在尝试做的一件事是正确标记和发布这些库 DLL,以便客户端项目文件可以指向代码的静态版本,而不是始终更改的主干。事实证明这有点令人费解——例如,一个同时引用 A 和 B 的客户项目。A 本身引用 B,因此从技术上讲,有两个对 B 的引用来自客户项目。
因此,显而易见的事情似乎是将所有内容组合到一个具有组织良好的命名空间的通用/实用程序库中。正如我所说,几乎每个客户端应用程序都引用其中一个库,那么谁在乎呢?这样做不会引入任何具有 3rd-party 依赖关系的不良情况,并且我们所有的目标机器都是内部的,并且维护大致相同的环境/软件配置。
不过,这似乎太容易解决了,所以我想我至少会得到第二个意见。另一种方法是使用 GAC 并对所有内容进行强烈签名/版本。我在这里错过了什么吗?