0

目前我受到两个 TFS 构建问题的困扰:

问题一:我有一个项目的解决方案,该项目现在在另一个解决方案中引用另一个项目的 dll 产品。构建代理似乎不包含这些 dll,构建失败。

问题二:我有一个解决方案引用另一个解决方案中的项目。构建代理似乎不包括外部引用的项目,构建失败。

我查看了“复制目录”构建活动,但不知道在哪里填充或将什么作为源值和输出值。

4

2 回答 2

2

最佳实践是使用项目引用来引用同一解决方案中的其他项目。对于解决方案外部的引用,您应该使用文件引用,然后检入正在引用的已编译 DLL。

Solution1
  \Project1  --> Project1.dll
  \Project2  --> Project2.dll

Solution2
  \ProjectA (references Project1.dll)
  \ProjectB (references Project2.dll)
  \References
      \Project1.dll -- this DLL gets checked in here and ProjectA references from here
      \Project2.dll -- this DLL gets checked in here and ProjectB references from here

项目A.csproj

<Reference Include="Project1.dll, Version=blah blah blah">
   <HintPath>..\References\Project1.dll</HintPath>
</Reference>

项目B.csproj

<Reference Include="Project2.dll, Version=blah blah blah">
   <HintPath>..\References\Project2.dll</HintPath>
</Reference>

使用这种方法,您必须构建 Solution1,获取被删除的 DLL,然后将它们检入到 Solution2 的 References 文件夹中。您可以在解决方案 1 的构建中获得真正的幻想并设置一些逻辑,它会自动签出 Solution2\References 文件夹,用构建中的最新版本替换 Project1 和 Project2 DLL,然后将它们签入......如果你是使用持续集成这将启动解决方案 2 的构建。

于 2013-07-17T19:54:16.693 回答
0

如果您使用的是 TFS 2012 / TFS2010 构建模板,请确保将“解决方案特定构建输出”属性设置为 false。这将确保构建代理在同一个 bin 目录中构建所有程序集。

于 2013-10-07T14:48:04.480 回答