在我工作的公司,我们有一个"实用程序"项目,我们构建的应用程序几乎引用了它.它有很多东西,比如NullHelpers,ConfigSettingHelpers,Common ExtensionMethods等.
我们的工作方式是,当我们想要创建一个新项目时,我们从源代码控制中获取项目的最新版本,将其添加到解决方案中,然后从添加到解决方案中的任何新项目中引用项目.
这已经运作正常,但是有一些情况下,人们对共同项目进行了"重大改变",这对他们有用,但对其他人不起作用.
我一直在考虑,不是将公共库添加为项目参考,我们应该开始将公共库作为独立的dll开发并发布不同的版本并针对特定项目定位特定版本,以便可以在没有任何风险的情况下进行更改使用公共库的其他项目.
说了所有我有兴趣看看别人如何引用或使用他们的公共库.
这正是我们正在做的事情.我们有一个Utility项目,它有一些非项目特定的有用功能.我们手动增加版本(次要),在Release版本中构建项目,签名并将其放到共享位置.
然后人们使用该库的特定版本.
如果在某些特定项目中实现了一些有用的方法,这些方法可以进入主实用程序项目,我们将项目放在一个特殊的辅助类中,并将它们标记为可能的实用程序候选项(简单// TODO).在项目结束时,我们审查候选人,如果他们坚持,我们将他们移动到主图书馆.
如果需要,我们会将方法和类标记为[已废弃].
但是,它并不重要,因为我们在每次发布时都会增加版本.
希望这可以帮助.