我们目前在C#中有一个大型解决方案,它包含大约40个项目。
另一个客户端的第二个解决方案几乎完全相同,并且使用了许多相同的项目,其中一些项目被省略,而其他一些项目包含在第一个解决方案中不存在。
为了使代码版本控制更易于管理,我想将SVN解决方案中包含的每个项目作为单独的项目进行检查,但是我试过的SVN客户端似乎都不支持这一点,而无需依次手动添加每个项目。 / p>
期望的结果是:
1)打开客户端A的解决方案,并对公共项目进行更改 2)提交更改,然后关闭解决方案。 3)打开客户端B的解决方案。客户端B解决方案中提供了“1”中所做的更改。 4)对特定于客户端B的项目进行更改。提交后,“1”的更改不会显示为待处理。
我尝试过AnkhSVN和VisualSVN,但在这两种情况下,选择项目并运行Add selected projects to Subversion
使我可以选择添加根解决方案,但不能单独添加项目。
我设法得到的最接近的是Tortoise,但这涉及手动添加每个项目,这对于这么多源项目来说不是一个可行的选择。
编辑:正如所建议的那样,使用通用解决方案和两个独立的客户端特定解决方案可以解决将代码提交到SVN的问题,但需要针对必须提前编译的DLL进行编译。
我们最初尝试过这种方法,但是由于VS有时没有正确地重新加载DLL的问题,我们遇到了调试问题。
我不确定是否可以使用自动化流程以这种方式添加项目,但在我咬紧牙关并编写一些代码之前,我会欢迎提出建议。
非常感谢。
答案 0 :(得分:1)
我建议在这种情况下使用3种解决方案:
每个都可以由自己的存储库支持。现在,您可以将您的公共代码发布为一组dll(或者您可以通过设置私有Nuget服务器并将您的常用解决方案转换为Nuget包来获得它),并从客户端解决方案中引用它。