TFSBuild / MSBuild和项目参考与文件参考

时间:2010-03-05 11:11:46

标签: tfs msbuild projects-and-solutions tfsbuild project-reference

我们有一个使用项目引用的大型VS解决方案,它由TFS Build构建,如下所示:

Solution
- Project 1
- Project 2
- Project ...
- Project N

由于解决方案太大,我们每天都会使用几种较小的解决方案:

SubSolution
- Project 1
- Project 19

问题是开发SubSolution的开发人员发现它没有构建,因为找不到项目引用,因此他们将项目更改为使用文件引用。

然后继续打破无法找到这些文件引用的TFS Build,因为它们尚未构建(即使项目在同一个解决方案中)。两种类型的参考文献之间是否存在解决这种拉锯战的方法。拆分解决方案的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

  

拆分解决方案的正确方法是什么?

通过模式& amp;和TFS指南查看本章。实践团队:

Chapter 3 - Structuring Projects and Solutions in Source Control

请特别注意“分区解决方案”方案中的这个说明(我相信您实际上正在尝试实施):

  

与以前版本的Visual Studio不同,Visual Studio 2005依赖于MSBuild。现在可以创建不包含所有引用项目的解决方案结构,并且仍然可以无错误地构建。只要首先构建主解决方案,从每个项目生成二进制输出,MSBuild就能够跟踪解决方案范围之外的项目引用并成功构建。这仅适用于项目引用而非文件引用。您可以从Visual Studio构建命令行和IDE中成功构建以这种方式创建的解决方案,但默认情况下不能使用Team Build。为了使用Team Build成功构建,请使用包含所有项目和依赖项的主解决方案。

答案 1 :(得分:2)

无论您如何组织构建,开发人员都应该了解引用的工作方式,并且当他们对引用进行更改时要注意,他们不应该在中检查这些更改,除非他们打算对构建过程进行更改

关于组织构建的主题 - 正如Dmytrol所说,项目引用应该在解决方案之间起作用(只要目标已经构建,但无论如何也是文件引用的情况)。

我的建议是将您的项目分组为小型可行解决方案,并在这些解决方案中使用项目参考。您的主要解决方案文件/构建也可以使用项目引用,但是如果您发现较小的解决方案之间的项目引用太难维护,您可以使用文件引用,并通过项目依赖项或项目构建顺序控制构建顺序(可在Visual中访问)通过右键单击解决方案中的项目来实现Studio。