在C#中处理共享dll的最佳方法是什么?

HAd*_*des 10 c# dll visual-studio

在我的团队中,我们有数百个共享的dll,其中许多还引用了其他dll本身引用其他dll,依此类推.我们已经开始为所有我们认为足够通用的dll使用'Shared'目录,以便在其他项目中使用,例如数据库comms dll.

问题是,如果更改了树中的一个dll,那么引用它的所有内容都需要重新编译,以避免版本问题(在运行时发生).

为了避免这种情况,现在有人谈论将我们所有的"共享"dll添加到一个大型程序集中,任何创建新应用程序的人都只是引用它,仅此而已.

这显然会变得越来越大,我不确定这是不是最好的方式.有什么想法吗?

The*_*urf 1

这绝对不是最好的方法。我的工作中有一些类似的“共享”DLL。它们变得笨拙且难以(读作:不可能)进行有意义的更改,因为很难确保更改不会破坏下游应用程序,这似乎与您想要做的完全相反。

听起来你真正需要做的就是更好地分离你的担忧。如果所有这些 DLL 都互相引用,则它们可能耦合得太紧密。真正的“共享”DLL 应该能够独立存在,或者作为三个或四个作为一组传输的数据包的一部分。如果您的依赖关系实际上阻止您进行更改,那么您的耦合策略就出现了严重错误。

将所有内容放入一个大型 DLL 中肯定不会使任何事情变得更好。事实上,可能恰恰相反。一旦您将所有内容都放在一个 DLL 中,您就会很想将其中的所有内容更紧密地耦合在一起,这使得以后无法将它们分开。