我试过了
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其中一个资源涉及其如何工作或应该从代码端工作
答案 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多维数据集)。
关于在构建中添加自定义信息:
我在法语博客上的文章(完全回答你的问题,抱歉,是的......法语):
希望这会有所帮助。 (由于我是新用户,我现在无法发布更多链接,直接与我联系,我会向您发送不错的网址,或谷歌“改变显示方式构建信息”)