0

我努力了

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

context.Track然后发现接受的重载<T>

context.Track(FooInstance);

并且没有一个出现在视觉工作室的构建查看器中。

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

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

参考其中一项资源,该资源暗示其工作方式或应该从代码方面工作

4

1 回答 1

1

它实际上确实进入了数据存储区。您的实例通过反射其属性转换为 Dictionnary<String,String> (如果您愿意,可以为 Dictionnary<String,String> 提供类型转换器),然后作为构建记录存储到数据库中。记录在逻辑上结构为一棵树。您可以通过 TFS API 检索此信息。

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

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

您还可以开发一个仓库适配器,将这些数据从存储的构建报告带到 TFS 仓库存储(以及 TFS 多维数据集)。

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

我在我的博客上的法语文章(完全回答了你的问题,对不起,是的......法语):

希望这可以帮助。(由于我是新用户,目前无法发布更多链接,请直接与我联系,我会向您发送漂亮的 URL,或 google 以获取“更改构建信息的显示方式”)

于 2011-10-02T18:50:17.437 回答