我得到了以下结构:
$
--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>
<Map Include="$/TeamProject1">
<LocalPath>$(SolutionRoot)</LocalPath>
</Map>
<Map Include="$/TeamProject2">
<LocalPath>$(SolutionRoot)</LocalPath>
</Map>
<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>提前谢谢。
小苏
发布于 2010-07-11 15:00:32
引用official TFS guide on CodePlex
如果在团队项目之间共享源代码或二进制文件,则有两种选择:
上的项目的源
分支是首选方法,因为它将依赖关系存储在源代码管理服务器上。工作区映射是一种仅限客户端的方法,这意味着您和每个开发人员必须在自己的计算机上以及构建服务器上创建映射,才能成功构建应用程序。
分支增加了额外的合并开销,但它使您能够更明确地选择更新的二进制文件或源文件。
发布于 2009-10-27 21:38:01
AFAIK这是不可能的,而且在开发人员的机器上会有问题。文件引用是一种可行的方法。我通常这样组织项目:
$
-- 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。
发布于 2017-09-29 22:44:24
很难找到这个问题的实际答案,这浪费了我很多时间。所以,如果你遇到这个问题,这里有一个指向正确解决方案的链接
基本上,UI不允许您在集合中选择多个团队项目。但是,您始终可以键入其他团队项目的实际路径,它将正常工作。
https://stackoverflow.com/questions/1630571
复制相似问题