TFS和引用的程序集

时间:2011-01-16 17:01:15

标签: visual-studio tfs tfs2010

我有一个使用TFS进行源代码管理的项目。实际上,我在一个TFS Collection中有2个解决方案。假设第一个解决方案称为SolutionA,而第二个解决方案称为SolutionB。每个解决方案都有自己的TFS项目。现在我遇到的问题是,SolutionB的一个项目应该引用一个在SolutionA中构建的程序集。那么实现这一目标的最佳做法是什么?

由于

3 个答案:

答案 0 :(得分:2)

您的SolutionA包含ProjectA,而SolutionB包含ProjectB:

可用于从ProjectB引用ProjectA的两种最简单的方法是:

  • 只需将ProjectA添加到SolutionB,然后ProjectB就可以使用对ProjectA的项目引用。这意味着您共享ProjectA的源代码,并从SolutionB和SolutionA中独立构建它。这会稍微减慢您的SolutionB构建速度(因为您现在总是在其中构建ProjectA),但是允许您对ProjectA的源代码进行编辑,并将其视为SolutionB的正常部分。

  • 构建SolutionA并使​​用构建后步骤(或重定向输出路径)将生成的ProjectA程序集(及其pdb和xml文件,如果您希望能够调试它)保存到共享中文件夹(例如C:\ Libraries)。然后使用ProjectB中的文件引用到C:\ Libraries \ ProjectA.dll。这样可以快速构建SolutionB,并且无需使用ProjectA源代码,但这意味着对ProjectA的任何更改都需要双重构建(首先是SolutionA创建.dll,然后是SolutionB来获取更改。 DLL)。 (您也可以选择签入C:\ Libraries来控制源代码,这样另一个团队就可以为ProjectB提供一个预先构建的二进制文件,而不是你自己必须与SolutionA有任何关系)

澄清Project-references和File-references的含义:在Solution explorer中,右键单击项目的References文件夹,然后选择“Add Reference ...”。在出现的对话框中,您可以选择“项目”选项卡以列出解决方案中的项目,并引用其中一个项目(项目引用)。或者选择“浏览”选项卡进行浏览以查找预构建的程序集.dll文件(文件引用)

(您也可以将程序集从ProjectA安装到GAC中,然后使用添加引用对话框从“.NET”选项卡中引用它,但是恕我直言这是一个更复杂的方法,因为你有更多的混乱清理以从系统中删除dll)

答案 1 :(得分:1)

有几种选择。

  1. 如果同一个团队管理这两个解决方案,我强烈建议您将它们放在同一个团队项目中,或者只是在两个项目之间共享相同的源存储库。
  2. 如果他们由不同的团队管理,那么为解决方案提供解决方案a的二进制副本可能是有意义的,并在发布时更新它。
  3. 如果这些都不起作用,您可以在解决方案b中添加自定义msbuild脚本,该脚本将从源代码获取最新版本的解决方案,并在构建b之前构建它。某事like this
  4. 我个人认为团队项目往往会被滥用。我希望每个团队只有一个团队项目,并将所有代码放在存储库中。

答案 2 :(得分:0)

大家,我找到了更好的解决方案。当我创建SolutionB时,我只是在SolutionB中添加ProjectA而不进行分支。为此,只需点击文件 - >源控制 - >从源代码管理添加项目。 Voila: - )