在解决方案和源代码管理之间共享项目



这可能是一个非常愚蠢的问题,如果是,请指出。但我只是想提高我对如何为多个人和多个具有共享部分的项目构建源代码管理存储库的最佳方法的了解。简言之,我使用了许多截然不同的代码库,它们共享了一些位的库,这些位在我们公司使用的所有实现中都是通用的(日志记录、邮件发送等(。

我要问的具体场景是,如果我在一个存储库中有客户A项目&客户B的项目在第二个存储库中,然后是第三个存储库的一组"工具"共享代码并保持存储库独立的最佳方式是什么?

在理想的情况下,我们希望能够打开客户A的项目,并查看/编辑/检查"工具"的代码,以及客户B的代码。目前,我只是通过运行Visual Studio的第二个实例来管理这一问题,并在进行更改时手动复制和更新DLL,但我觉得必须有更好的方法。

提前感谢!

用一个词回答您的问题:NuGet。

您应该做的是将任何共享组件转换为NuGet包,这些包发布到NuGet提要中,并由任何需要它们的项目引用。现代版本的TFS和VSTS都有本机包管理源(可作为扩展(。然而,包管理提要可以像网络上某个地方的文件共享一样简单。

在理想的情况下,我们希望能够打开客户A的项目,并查看/编辑/检查"工具"的代码,以及客户B的代码。

您可以通过一个解决方案来实现这一点。我知道你提到你把代码保存在3个转发中,但也许这没有必要。

有一个单一的解决方案意味着,如果你在"工具"中更改代码,你会立即看到对两个客户端的影响(并且可以为两个客户端运行测试,以确认更改没有破坏a或B。

使用单一的解决方案,您还可以在一个地方看到对所有文件的更改,这减少了忘记签入某些内容的可能性

最后,您可以将3组合为一个,直到代码it Tools稳定下来,然后发布它(例如,通过NuGet(。

我认为NuGet工具包和单一解决方案之间的决定应该基于工具的大小和工具中代码的更改频率。

其他选项:

  • 在Tools中复制代码,并在A和B repo中都有源代码
  • 将一些代码从Tools移到A和B,并将一些留在Tools中,然后创建一个NuGet——如果新的Tools不经常更改,这可能会奏效

最新更新