Context.Track <t>信息在哪里?</t>

时间:2011-04-13 21:52:59

标签: tfs2010 workflow-activity

我试过了

public sealed class WriteMessage : CodeActivity
{
    protected override void Execute(CodeActivityContext context)
    {
        context.Track(new BuildInformationRecord<Foo>()
        {
            Value = FooInstance,
        });
    }
} 

然后在context.Track上发现接受<T>

的重载

context.Track(FooInstance);

并且在visual studio的构建查看器中都没有出现。

context.TrackBuildMessage(string data)当然可以。

我没有得到任何异常,它是保存到tfs数据存储还是文件?或者只是默默地完全失败了?

Reference其中一个资源涉及其如何工作或应该从代码端工作

1 个答案:

答案 0 :(得分:1)

它实际上确实是通往数据存储区的。您的实例将转换为Dictionnary&lt; String,String&gt;通过对其属性的反射(您可以为Dictionnary提供类型转换器&lt; String,String&gt;如果您愿意),然后将其作为构建记录存储到数据库中。记录在逻辑上构造为树。您可以通过TFS API检索此信息。

您正在为TFS使用新类型“Foo”。因此,您的信息不能显示在Visual Studio中的构建报告中,因为VS不知道如何表示它。实际上,您需要使用自定义插件扩展VS构建报告,该插件可将其转换为WPF控件以进行渲染。

如果您跟踪“BuildMessage”,这是VS的一个众所周知的类型,它将显示在构建日志中。

您也可以开发一个Warehouse适配器,将这些数据从存储的构建报告中提取到TFS仓库商店(以及TFS多维数据集)。

关于在构建中添加自定义信息:

我在法语博客上的文章(完全回答你的问题,抱歉,是的......法语):

希望这会有所帮助。 (由于我是新用户,我现在无法发布更多链接,直接与我联系,我会向您发送不错的网址,或谷歌“改变显示方式构建信息”)