【问题标题】:MSBuild reports that build Failed however the log reports Build SuccessfulMSBuild 报告构建失败,但日志报告构建成功
【发布时间】:2010-06-24 17:24:46
【问题描述】:

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


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

构建成功。 0 个警告 0 个错误


Build Explorer 究竟使用什么来确定构建脚本是否成功?

脚本本身使用 MSBuild 扩展包(来自 CodePlex)来构建包含 40 多个 VB6 项目的解决方案。为了它可以由团队构建运行,我实现了目标 EndToEndIteration,构建目标为“DependsOnTargets”。 EndToEndIteration 是我在脚本中实现的唯一一个团队构建目标(它似乎是唯一的强制性目标?)。

当我从命令行运行脚本时,它也会报告成功,因此只有 Build Explorer 指示失败。

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

【问题讨论】:

    标签: vb6 msbuild


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      我刚刚找到了解决方案,所以我将在此处添加它。

      在构建 VB6 解决方案(包括 40 多个项目)时,我创建了一个纯 msbuild 脚本,我最初是从命令行运行的。要将它与 CI 的团队构建一起使用,我添加了一个目标“EndToEndIteration”,因为这是团队构建中新 msbuild 脚本的唯一强制目标(即不是通过 TFS 的创建构建脚本向导创建的脚本)。这导致了上面的问题,即使脚本执行完美,构建资源管理器仍然会报告失败。

      解决方案是使用 TFS 向导创建构建脚本(对于任何 .Net .sln 文件 - 没关系 - 对它的引用将被删除)。然后获取此 tfsbuild.proj 文件的副本并删除与 .Net 项目相关的详细信息并粘贴到您的 msbuild 目标中。然后实现目标“CoreCompile”以启动您粘贴的目标。

      【讨论】:

        猜你喜欢
        • 2023-02-25
        • 2016-05-14
        • 2021-03-29
        • 2015-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-24
        相关资源
        最近更新 更多