TFS2010 - 记录的自定义生成活动中(TFS2010 - Logging inside cu

2019-07-29 01:21发布

我们有一个自定义生成活动,执行我们的构建的执行。 我们使用自定义的活动,因为我们使用的编译器是非常特殊的,系统是很老,我们不希望重写整个事情,所以它与MSBuild的工作。 然而,该库是由TFS管理和建设,由TFS被触发。

里面的自定义生成活动,我想记录的状态。 目前,我与这片的C#代码这样做:

private void LogMessage(String message, CodeActivityContext context)
        {
           BuildInformationRecord<BuildMessage> record =
             new BuildInformationRecord<BuildMessage>()
             {
                 Value = new BuildMessage()
                    {
                        Importance = BuildMessageImportance.High,
                        Message = message,
                    },
             };

            context.Track(record);
        }

它的工作原理,但有一个很大的问题:我们的自定义生成的活动需要执行约6小时(正如我所说,这是一个老也大软件项目)。 问题是,日志消息只出现TFS生成汇总里面,一旦生成操作已完成。 所以6小时建设后,所有日志消息出现一次。

我们想得是,消息显示,因为它们记录下来。 这样构建的人能看到构建目前,也看看发生了什么。

一种解决方法,我实现至今是有自定义生成活动使用的是与工作流基础部分共享消息队列。 然后,工作流程的基础里面,我创建了执行构建,并在同一时间清空消息队列,并将其显示并行语句。 下面是结构的截图:

然而,结果是相当令人失望。 这是什么出来:

红色为实际生成日志消息,它周围的一切都只是while循环和其他的东西...

是否有可能转换的日志信息了吗?

Answer 1:

你可以尝试设置的Build过程模板XAML(无法通过设计来实现)以下属性压制的消息:

mtbwt:BuildTrackingParticipant.Importance="None"

例如,从我的模板:

<InvokeMethod DisplayName="Delete File" mtbwt:BuildTrackingParticipant.Importance="None" ... />


Answer 2:

mtbwt:BuildTrackingParticipant.Importance="Low"/"None"仅控制呼叫(I猜)。 而是使用mtbwt:BuildTrackingParticipant.TrackingOption="None" ,这似乎完全摆脱呼叫中的所有跟踪消息。



文章来源: TFS2010 - Logging inside custom build activity