开发用于多个解决方案/项目的C#库时的最佳实践

时间:2016-08-03 18:55:02

标签: c#

长时间潜伏,第一次海报,如果我在这里问错了类型的问题,请道歉。

我有一个包含C#类和函数的项目,我使用它来处理各种C#项目。我们称之为" KitchenSink"。当我处理各种项目时,我添加,删除和修改KitchenSink的部分内容。也许我正在开发一个组织CD的应用程序,所以我将向KitchenSink添加一些排序例程。然后可能决定编写一个通过电子邮件发送内容的应用程序,因此我向KitchenSink添加了一些消息。

目前,我将最新版本的KitchenSink项目添加到我正在处理的任何解决方案中,然后处理该解决方案。这意味着我无法真正启动另一个解决方案,因为那时我正在使用另一个版本的KitchenSink。希望这是有道理的。

在多个项目/解决方案中使用这样的库的最佳方式是什么,并为所有这些项目/解决方案保留一个版本?我有一个疯狂的想法,把我的所有项目,以及KitchenSink,放到一个解决方案中。这样,当我修改KitchenSink时,我会知道什么是破坏。当我准备发布一个项目时,我可以将它和KitchenSink复制到一个新的解决方案中。

这可能是有史以来最糟糕的问题。遗憾。

2 个答案:

答案 0 :(得分:3)

这是包管理器解决的问题。

使用Nuget,您可以保留多个版本的应用程序,nuget包的使用者将选择他们想要的版本。当应用程序需要新版本的KitchenSink时,必须通过Nuget手动和有目的地升级。

就我个人而言,我已成功使用MyGet的免费版本挂钩到我的github帐户并为我创建和维护Nuget包。

答案 1 :(得分:0)

考虑将多个c#helper项目创建为库。

如果您将所有帮助程序类放在一个项目中,那么它将逐日增长,并且很难管理。您必须为解决方案删除一些辅助类,并且需要为另一个类添加新类。通过按职责分离不同包中的类,可以很容易地管理和重用它们。