TFS默默地修复.sln文件 - 有没有办法阻止它?

时间:2014-01-07 19:38:10

标签: .net tfs tfs2013

想象一下以下场景:

  

Solution1.sln包含项目ABC。 (.NET 4.0,C#)

     

Solution2.sln包含项目ABD。 (.NET 4.0,C#)

Solution2.sln工作的开发人员在D中添加了对B的引用。显然,Solution1.sln不再编译,因为它不包含D(经测试,只是为了确保VS2010,VS2013和独立的MSBuild)。

“问题”是运行Solution1.sln的每晚构建工作正常,令人惊讶。当我查看构建服务器上的.sln文件时,我发现它已被修改以添加缺少的项目。

这一开始看起来很不错,但我宁愿意识到解决方案的破坏比构建神奇的工作要好。

有没有办法在TFS2013中关闭此功能?我相当肯定,这不会发生在TFS2010中,但我不能说TFS2012。

1 个答案:

答案 0 :(得分:0)

解决方案只是一组项目,仅此而已。

当MSBuild处理解决方案时,它会计算构建顺序分析项目和二进制引用 - 此过程在Visual Studio和Team Build(即TFS)中是相同的。对于项目引用,它从构建输出中确定项目是否应该重建。只要MSBuild能够解析文件系统上的引用,一切都很好。

您将在Visual Studio中看到相同的行为:您只是收到警告,但构建成功。

Team Build为所有构建输出使用单个目录,因此用于构建解决方案的顺序也会影响二进制引用。