当前位置:  开发笔记 > 运维 > 正文

TFS和多个解决方案中的共享项目

如何解决《TFS和多个解决方案中的共享项目》经验,为你挑选了1个好方法。

我们的.NET团队为我们公司的项目工作,这些项​​目属于不同的类别.一些是内部Web应用程序,一些是外部(面向公众)的Web应用程序,我们还为公司办公室用户提供内部Windows应用程序,为我们的零售点(商店)提供Windows Forms应用程序.当然,因为我们讨厌代码重用,所以我们有大量代码在不同的应用程序之间共享.目前我们正在使用SVN作为源代码控制,我们的存储库布局如下:

 - = folder, | = Visual Studio Solution
-SVN
   - Internet
      | Ourcompany.com
      | Oursecondcompany.com
   - Intranet
      | UniformOrdering website
      | MessageCenter website
   - Shared
      | ErrorLoggingModule
      | RegularExpressionGenerator
      | Anti-Xss
      | OrgChartModule etc...

所以..

Internet文件夹中的OurCompany.com解决方案将包含一个网站项目,它还包括共享目录中的ErrorLoggingModule,RegularExpressionGenerator和Anti-Xss项目.

同样,我们的UniformOrdering网站解决方案也会将每个项目都包含在解决方案中.

我们更喜欢对.dll引用的项目引用,因为首先,如果我们需要在OurCompany.com网站上工作时在ErrorLoggingModule中添加或修复一个函数,它就在那里.此外,这允许我们构建每个解决方案,并查看共享代码的更改是否会破坏任何其他应用程序.如果我是正确的,这应该在构建服务器上运行良好.

在SVN中,没有问题.SVN和Visual Studio没有像TFS的源代码控制那样捆绑在一起.我们在使用TFS时从未想过如何在TFS中使用这种类型的结构,因为在TFS中,TFS项目始终与Visual Studio解决方案相关联.源代码存储库是TFS项目的子代,因此如果我们想要这样做,我们必须复制每个TFS项目的源代码存储库中的共享代码.正如我的同事所说,这"打破了所有关于代码重用和简单性的最佳实践".我们切换到SVN对我们来说已经足够了.

然而,现在,我们面临着真正修复我们的开发流程,TFS的应用程序生命周期管理非常接近我们想要的,以及我们想要如何工作.我们的一个关键点是共享代码问题.

我们正在评估其他商业和开源解决方案,但由于我们已经通过我们的MSDN订阅支付了TFS,而且TFS正是我们想要的,我们真的想找到解决这个问题的方法.

还有其他人面对这个并提出解决方案吗?

如果你看过一篇文章或发帖,你可以与我分享,那也会有所帮助.

像往常一样,我对这样的答案持开放态度,"你看错了,傻瓜,这就是它应该做的事情.



1> NotMe..:

我觉得这里有一些误解.首先,您可以在单个TFS项目中拥有多个(尽可能多的)解决方案.此外,单个Visual Studio项目可以包含任意数量的解决方案.

第二,你使用的是什么版本的TFS?2010年与2005/08年度的TFS项目处理方式不同.

在2008年,有几种方法可以解决这个问题,具体取决于你想要从中得到什么.您可以拥有多个TFS项目或单个TFS项目.

我将从多个开始.

为您的共享库类型代码设置TFS项目,为您拥有的每个常规项目设置其他项目.作为此共享库的开发过程的一部分,请检入已完成的程序集.然后将这些程序集分支到您想要使用它们的任何其他TFS项目中.当您对共享库执行功能更新或错误修复时,只需将分支合并到您希望更新进入的任何其他TFS项目中.

这使您可以为单个应用程序进行共享更改,而无需推送所有应用程序.

如果您想要一个包含所有内容的TFS项目,只需为每个所需的Visual Studio项目添加文件夹即可.visual studio解决方案可以毫无问题地返回基础树之外的项目.现在,在为每个解决方案配置Builds之类的内容时,请确保限制构建服务器从/ watch中获取的目录.这样,在对外部站点进行更改时,您无法构建其中一个内部站点.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有