引用 DLL 还是使用多项目解决方案更好?

3

我仍在学习.NET(具体来说是C#),我很好奇创建和引用dll的优势与拥有多项目解决方案的优势相比如何?我有机会选择任意一种,但我不确定哪种更好。将成为dll的项目非常小,但有可能被重复使用。在做出这个决定时,大小和可重用性是否应该是一个因素?谢谢所有帮助。


在我看来,直接链接到项目/解决方案文件通常更好。这样你就可以完全掌握调试和代码更改的能力。 - basti
通常一个项目最终会生成一个程序集(dll或exe),所以你的问题并不太合理,因为两者都是可能的。然而,在.NET世界中,为最微小的事情生成项目/程序集是非常普遍的,我认为这是一种反模式。 - Daniel
这完全取决于你想做什么。你能提供有关项目要求的更多信息吗? - zeencat
当然,如果您的项目不在同一个文件夹中,使用版本控制系统时会遇到问题。 - M. Mennan Kara
5个回答

4
您仍然会涉及到引用其他程序集,因为每个项目都会生成一个程序集。
多项目解决方案的一个好处是,如果您在两个项目中更改了代码,则整个解决方案可以在一步中构建。此外,您可以同时调试两个项目(这在单独的解决方案中也可能实现,但比较困难)。
尺寸可能会影响构建时间,但除非它们非常大,否则不应该是一个很大的问题。如果项目被其他解决方案使用,则将它们保留在单独的解决方案中可能更有意义,因为这样您可以更好地控制构建过程。
使用单独的解决方案还可以帮助您保持接口的稳定性,因为在整个堆栈中更改接口要困难得多。

关于编译时间,拥有许多项目要比一个大型项目更糟糕(当然,这取决于构建配置)。 - Daniel
@Daniel,我更多地在想如果你不断重建一个没有改变的大型项目,但你的观点是正确的。 - D Stanley

1
每个项目仍将输出自己的程序集,但分组项目确实使调试和构建更容易。
如果您有信心未来可以重用单独的项目,请从多项目解决方案开始。仔细设计您的项目以最小化相互依赖。如果您做得很好,当您决定要独立开发一个单独的项目时,将它们分开不应该太难。

1

如果这些程序集不会在其他项目中共享,我会将它们放在同一个解决方案中。

如果代码在多个项目之间共享,情况就不同了。我倾向于将在多个项目之间共享的代码与任何其他第三方二进制文件一样处理——也就是,在特定版本处复制DLL并引用该DLL。

这样做的好处是,在6个月或一年后,当共享代码的两个项目处于不同的发布计划中时,每个项目都可以完全控制何时更新共享代码并处理潜在的破坏性变化。

如果你只是直接将共享代码构建到你的项目中,那么你就要受到其他项目所需更改的影响——这不是一个好的选择!


0

当您最初开发消费程序时,我发现使用多项目解决方案最容易。但是,当您稍后开发另一个也使用相同dll的程序时,只需引用它们即可。


0
我建议您将库项目和引用项目添加到同一个解决方案中。您可以使用项目引用来引用库项目。这样做有助于更好地调试和维护代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接