TFS构建错误:需要引用

时间:2011-04-15 10:36:17

标签: visual-studio-2010 msbuild tfs2008

我在VS2010上使用TFS(我认为是2008),使用多种解决方案进行团队构建。我收到一个错误“程序集需要参考'......'包含基类'...'。在项目中添加一个。”其中一个解决方案。

有问题的项目实际上确实有一个对程序集的引用,当我在VS中自己构建该解决方案时,它工作正常。

此构建用于开发分支,构建定义是从主干的构建定义中复制的。我去了,并将所有路径引用从../Trunk / ..更改为../ Dev / ..,但我收到此错误。主干的构建工作正常,我不认为这个特定的解决方案在主干和分支版本之间有任何变化。

我还是TFS的新手,所以有人会建议可能出现的问题吗? 谢谢!

编辑: 我注意到这个版本还有一个警告:“引用的项目'(它上面正在寻找的项目)'不存在。我不知道为什么会这样说,因为我查看了构建服务器上的源文件夹那个文件就在那里。 但是它可能试图在Trunk中引用先前构建的文件版本吗?那样的版本号就错了......我疯了吗?任何想法都赞赏!

编辑2: 引用项目的dll已成功构建。但是,在构建日志中,当它来到构建的“任务”Vbc“'部分时,/ reference选项不包括此dll,即使我在VS中添加了对它的直接引用。对于知道msbuild的人来说,我得到的错误是BC30007。

编辑3: 发现问题了!发布以防将来有人遇到同样的问题: 简单来说,源文件的路径名太长了(dev分支有一些额外的文件夹级别,因此路径名比后备箱中的路径名长很多)。令人讨厌的是,在这种情况下你得到的错误信息并没有提供任何关于真正问题的线索。 “确实需要参考”。

1 个答案:

答案 0 :(得分:2)

几乎可以肯定是道路问题。当我们从之前的源代码控制/构建系统迁移到TFS时,我们还将所有项目从绝对路径迁移到相对路径。

查看各种.csproj文件,并检查DLL和引用项目的引用路径。确保它们都是相对于正在构建的项目声明的(你应该看到它们以很多..\符号引用。如果你看到一封驱动器号,你就会遇到问题。

修复后,无论分支如何,构建都应该适用于本地构建和团队构建。