2010-06-22 181 views
0

我遇到了MSBuild脚本的问题,因为它正确执行,但在TFS Build Explorer中报告失败(红色X图标)。然而,尽管所有的报告构建失败,如果我检查日志,他们看起来很好,和结束:MSBuild报告构建失败,但日志报告构建成功


完成项目“TFSBuild.proj”建设目标“EndToEndIteration”。 完成构建项目“C:\ Builds \ EDRM Development \ CI_Development_IW471_UserGroup_CG3 \ BuildType \ TFSBuild.proj”(EndToEndIteration target(s))。

构建成功。 0警告(S) 0错误(S)


究竟是用来确定构建脚本成功构建资源管理器?

该脚本本身使用MSBuild扩展包(来自CodePlex)来构建包含40个VB6项目的解决方案。为了能够通过团队构建来运行,我已经实现了目标EndToEndIteration,将构建目标作为“DependsOnTargets”。 EndToEndIteration是我在脚本中实现的唯一一个团队构建目标(它似乎是唯一必需的目标?)。

当我从命令行运行脚本时,它也报告成功,所以只有Build Explorer表示失败。

任何想法为什么会发生这种情况?

回答

0

构建的成功取决于所有以成功模式结束的任务(如果其中一个失败,它可能会被视为部分成功构建,但该图标仍将保留为具有小绿色成功图标的失败图标:)

尝试查看构建日志,因为它看起来,一些前或过去的运行步骤失败(无法复制某物等)。最简单的方法是确定问题出在哪里,是从Visual Studio安排每个任务的最大详细级别。

0

感谢您的回复。所有任务都以成功结束。

虽然我刚刚发现了解决方案,所以我会在这里添加它。当我建立一个VB6解决方案(包含40多个项目)时,我创建了一个纯粹的msbuild脚本,我原本是从命令行运行的。为了在团队构建中使用它,我添加了一个目标“EndToEndIteration”,因为这是团队构建中新的msbuild脚本的唯一强制目标(即不是通过TFS的创建构建脚本向导创建的脚本)。这会导致上述问题,即使脚本执行完美,构建浏览器仍会报告失败。

解决方案是使用TFS向导创建构建脚本(对于任何.Net .sln文件 - 无关紧要 - 对其的引用将被删除)。然后获取这个tfsbuild.proj文件的副本,并去除与.Net项目相关的细节并粘贴到你的msbuild目标中。然后执行目标“CoreCompile”来启动你粘贴的目标。