Tfs 使用多个团队项目进行团队构建
我有以下结构:Tfs 使用多个团队项目进行团队构建,tfs,tfsbuild,Tfs,Tfsbuild,我有以下结构: $ --TeamProject1 ---Solution1.sln ----TestProject1 --TeamProject2 ---Solution2.sln ----TestProject2 在TestProject1中,我添加TestProject2.dll作为引用(不是项目引用,而是文件引用)。我的问题是:如何构建一个引用属于不同团队项目的程序集的解决方案 我已获得包含以下信息的TFSBuild.proj文件: <TfCommand>$(TeamBuil
$
--TeamProject1
---Solution1.sln
----TestProject1
--TeamProject2
---Solution2.sln
----TestProject2
在TestProject1中,我添加TestProject2.dll作为引用(不是项目引用,而是文件引用)。我的问题是:如何构建一个引用属于不同团队项目的程序集的解决方案
我已获得包含以下信息的TFSBuild.proj文件:
<TfCommand>$(TeamBuildRefPath)\..\tf.exe</TfCommand>
<SolutionToBuild Include="$(BuildProjectFolderPath)/../../DEV/TeamProject1.sln">
<Targets></Targets>
<Properties></Properties>
</SolutionToBuild>
$(TeamBuildRefPath)\..\tf.exe
$(SolutionRoot)
$(SolutionRoot)
提前谢谢
Xiaosu这是不可能的,在开发者的机器上会有问题。文件引用是一种方法。我通常组织这样的项目:
$
-- TeamProject1
-- branches
-- trunk
Solution1.sln
-- lib
TestProject2.dll
-- src
-- test
TestProject1.csproj references TestProject2.dll from lib
-- TeamProject2
-- branches
-- trunk
Solution2.sln
-- lib
-- src
-- test
TestProject2.csproj
这样,TeamProject1独立于TeamProject2的源代码,它包含所有必要的依赖项。如果TeamProject2发生更改,则无需中断TeamProject1。引用以下内容:
如果跨团队项目共享源文件或二进制文件,则有两个选项:
- 分支。使用这种方法,您可以将其他团队项目中的源分支到当前解决方案中。这将创建一个配置,将共享位置的源和服务器端的项目统一起来
- 工作区映射。使用这种方法,可以将另一个团队项目中的源映射到开发计算机上的工作区中。这将创建一个配置,该配置将来自另一个团队项目的源和客户端上的您的项目统一起来
这是很难找到真正的答案,这浪费了我很多时间。因此,如果你遇到这个问题,这里有一个正确解决方案的链接
基本上,UI不允许您在集合上选择多个团队项目。但是,您始终可以键入其他团队项目的实际路径,它将起作用谢谢您的更新。如何保持TestProject2.dll的同步?在开发阶段,TestProject2.dll可能每周都会更改,因此我是否需要手动将TestProject2.dll从TeamProject2复制到TeamProject1 lib文件夹??谢谢。+1我不知道这是可能的,真的解决了我的问题。
<Target Name="BeforeGet">
<DeleteWorkspaceTask TeamFoundationServerUrl="$(TeamFoundationServerUrl)" Name="$(WorkspaceName)" />
<Exec WorkingDirectory="$(SolutionRoot)" Command=""$(TfCommand)" workspace /new $(WorkspaceName) /server:$(TeamFoundationServerUrl)" />
<Exec WorkingDirectory="$(SolutionRoot)" Command=""$(TfCommand)" workfold /unmap /workspace:$(WorkSpaceName) "$(SolutionRoot)"" />
<Exec WorkingDirectory="$(SolutionRoot)" Command=""$(TfCommand)" workfold /map /workspace:$(WorkSpaceName) /server:$(TeamFoundationServerUrl) "%(Map.Identity)" "%(Map.LocalPath)"" />
</Target>
$
-- TeamProject1
-- branches
-- trunk
Solution1.sln
-- lib
TestProject2.dll
-- src
-- test
TestProject1.csproj references TestProject2.dll from lib
-- TeamProject2
-- branches
-- trunk
Solution2.sln
-- lib
-- src
-- test
TestProject2.csproj