如何在TFS 2010中处理第三方库

如何在TFS 2010中处理第三方库,tfs,Tfs,在我的工作中,我们刚刚开始在由4名开发人员组成的团队中使用TFS,同时正在从单一开发人员项目过渡到团队项目。我们主要使用TFS中的默认设置 我是第一个提出一个简单的Silverlight MVVM项目的人,该项目由一个Silverlight解决方案和一个web项目组成 当我的同事把我的代码拉下来并试图编译时,他面临着许多缺少的引用(.dll)、Expression blend SDK、Ria服务工具包、Telerik控件、简单mvvm工具包、silverlight工具包等 我们需要做什么,才能将

在我的工作中,我们刚刚开始在由4名开发人员组成的团队中使用TFS,同时正在从单一开发人员项目过渡到团队项目。我们主要使用TFS中的默认设置

我是第一个提出一个简单的Silverlight MVVM项目的人,该项目由一个Silverlight解决方案和一个web项目组成

当我的同事把我的代码拉下来并试图编译时,他面临着许多缺少的引用(.dll)、Expression blend SDK、Ria服务工具包、Telerik控件、简单mvvm工具包、silverlight工具包等


我们需要做什么,才能将项目添加到TFS中,当下一个开发人员将其取下时,这些项目都需要编译?

没有真正好的方法自动完成这一切。您通常会这样做:

  • 在分支中,在src文件夹旁边创建一个bin文件夹
  • 在bin文件夹中,为您所依赖的每个组件创建文件夹
  • 在每个文件夹中放置设置或指向设置的链接
  • 在每个文件夹中放置您在解决方案中使用的二进制文件
  • 在每个文件夹中放置一份自述文件,其中包含必须完成的任何手动步骤
  • 如果需要,您可以创建一个powershell脚本或批处理文件,用于安装所有必需的组件。这不难理解
现在,您必须修复解决方案中的一些问题:

  • 确保引用不指向GAC,而是指向分支的bin文件夹中的程序集
  • 确保所有路径都与解决方案相关。任何c:。。。路径不会从一个系统传递到另一个系统
我发现最简单的方法是在VisualStudio中卸载项目,然后编辑它。然后,您可以快速向每个引用添加
hintpath=“..\..\..\bin\component
属性。在这些属性上提供了不同的解决方案,所有这些解决方案都解决了相同的问题

此设置允许您至少获取任何解决方案的最新版本,并在不安装任何工具的情况下进行构建。如果您的某些组件依赖于visual studio加载项,则这些工具的设计器通常无法工作,但至少您能够构建它们

一种常用的替代方法是为项目创建虚拟机基础映像,并在其上安装所有必需的组件。然后将映像复制到每个开发人员工作站和sysprep,以确保它们都具有唯一的名称和标识符。当项目需要更新其依赖项时,让一名开发人员创建一个新的干净machine并将其重新分发给所有团队成员

如果您使用的是Windows Server虚拟化或VMWare,那么创建不同的磁盘并允许开发人员远程访问这些映像非常容易


另一种方法是对您的解决方案进行和。这在大多数情况下都适用,但Expression Blend等产品仍需要单独安装。

没有一种真正好的方法可以自动完成这一切。您通常会这样做:

  • 在分支中,在src文件夹旁边创建一个bin文件夹
  • 在bin文件夹中,为您所依赖的每个组件创建文件夹
  • 在每个文件夹中放置设置或指向设置的链接
  • 在每个文件夹中放置您在解决方案中使用的二进制文件
  • 在每个文件夹中放置一份自述文件,其中包含必须完成的任何手动步骤
  • 如果需要,您可以创建一个powershell脚本或批处理文件来安装所有必需的组件
现在,您必须修复解决方案中的一些问题:

  • 确保引用不指向GAC,而是指向分支的bin文件夹中的程序集
  • 确保所有路径都与解决方案相关。任何c:…路径都不会从一个系统传递到另一个系统
我发现最简单的方法是在Visual Studio中卸载项目,然后对其进行编辑。然后,您可以快速向每个引用添加
hintpath=“..\..\..\..\bin\component
属性。不同的解决方案都可以解决同一个问题

此设置允许您至少获取任何解决方案的最新版本并构建它,而无需安装任何工具。如果您的某些组件依赖于VisualStudio加载项,那么这些工具的设计器通常不会工作,但至少您能够构建它们

一种常用的替代方法是为项目创建虚拟机基础映像,并将所有必需的组件安装到该映像上。然后将映像复制到每个开发人员工作站,并对其进行sysprep,以确保它们都具有唯一的名称和标识符。当项目需要更新其依赖项时,让一名开发人员创建一台新的干净机器,并将其重新分发给所有团队成员

如果您使用的是Windows Server虚拟化或VMWare,那么创建不同的磁盘并允许开发人员远程访问这些映像非常容易


另一种方法是为您的解决方案提供和。这将适用于大多数情况,但Expression Blend等产品仍需要单独安装。

感谢您的回复(我希望这是一个配置设置或更易于维护的东西)。那么,如果您需要在TFS中的代码中进行简单的bug修复,但您的程序盒上的库是较新的,并且可能会有影响TFS使用方式或使用情况的更改,那么接下来的x个月(甚至几年)会发生什么呢代码将在虚拟机版本的故事中编译:-您将查找正确的快照-您将应用该快照并修复非虚拟机版本中的错误:-您遇到了麻烦,需要手动删除新工具(二进制文件将是您的sourcecontrol标签/分支的一部分,因此如果您不依赖程序集以外的附加组件/插件,则构建将正常工作)。@mongosenx如果您有适当的b