TFS构建错误:需要引用

3
我正在使用TFS(我认为是2008版)和VS2010,使用多个解决方案进行团队构建。其中一个解决方案出现错误:“需要对包含基类'...'的程序集'...'进行引用。请将其添加到您的项目中。”。
但是,这个问题的项目确实已经引用了该程序集,而且当我在VS中单独构建该解决方案时,它可以正常工作。
这个构建是针对开发分支的,并且构建定义是从主干的构建定义复制的。我已经将所有路径参考从../Trunk/..更改为../Dev/..,但是我仍然遇到这个错误。主干的构建运行良好,并且我不认为这个特定的解决方案在主干和分支版本之间有任何更改。
我对TFS还是比较新手,所以有人能指出可能存在的问题吗? 谢谢!
编辑: 我注意到此构建上还有一个警告:“引用的项目“(上面寻找的项目)”不存在。”我不知道为什么会这样,因为我在构建服务器上的源文件夹中查看了文件,该文件确实存在。 但是它是否尝试在主干中引用先前构建的文件版本呢?这样版本号就会出错... 我很癫狂吗?任何想法都将不胜感激!
编辑2: 所引用项目的dll已成功构建。但是,在构建日志中,当它来到构建的“Task”Vbc“部分时,/reference选项不包括此dll,尽管我在VS中添加了直接的引用。对于任何了解msbuild的人,我得到的错误是BC30007。
编辑3: 找到问题了!在这种情况下,路径名称太长了(开发分支有几个额外的文件夹级别,因此路径名称比主干要长得多)。令人恼火的是,你在这种情况下得到的错误消息并没有给出关于实际问题的任何线索。“需要引用”确实如此。

我在构建过程中遇到了很多路径长度的问题。干得好! - porusan
1个回答

2
几乎可以确定这是一个路径问题。当我们从之前的源代码控制/构建系统迁移到TFS时,我们还将所有项目从绝对路径迁移到了相对路径。
查看各种.csproj文件,并检查DLL和引用项目的引用路径。确保它们都相对于正在构建的项目(您应该看到它们使用大量的..\符号进行引用)。如果您看到一个驱动器号,那么就有问题。
一旦您解决了这个问题,无论是本地构建还是团队构建,无论分支如何,构建都应该正常工作。

谢谢,但路径已经是相对路径了。正在失败的项目有指定参考,如下所示:<ProjectReference Include="..\..\..\..\..\..\Common\ProjectToBeIncluded.vbproj"><Project>{0008A266-96BD-4F2A-B075-8EA52481E242}</Project><Name>ProjectToBeIncluded</Name></ProjectReference> - OMill
我假设您已经验证了路径,并确保一切都已适当检入和合并?另一件要做的事情是查看BuildLog.txt,看看它是否给您任何线索,以确定它正在寻找哪个文件。 - Robaticus
构建日志显示项目已成功构建。此时它会给出文件的完整路径,这是正确的,dll也出现在构建服务器上的二进制文件夹中。当尝试构建引用它的另一个项目时,出现了错误。我不知道应该查找什么。谢谢你的帮助... - OMill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接