Context.Track 在哪里?信息去哪儿了?

发布于 2024-10-31 23:48:32 字数 734 浏览 5 评论 0 原文

我尝试过

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

然后发现 context.Track 上有一个重载,它接受

context.Track(FooInstance);

并且没有一个出现在 Visual Studio 的构建查看器中。

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

我没有收到任何异常,它是保存到 tfs 数据存储还是文件中?或者只是默默地彻底失败?

参考涉及其如何工作或应该从代码方面工作的资源之一

I have tried

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

and

then found an overload on context.Track that accepts <T>

context.Track(FooInstance);

and neither one appears in the build viewer in visual studio.

context.TrackBuildMessage(string data) certainly does.

and I'm not getting any exception, is it being saved to the tfs data store, or a file? or is just silently failing entirely?

Reference to one of the resources implicating how this works or should work from the code side

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千紇 2024-11-07 23:48:32

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

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

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

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

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

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

希望这会有所帮助。
(我目前无法发布更多链接,因为我是新用户,请直接与我联系,我会向您发送不错的网址,或者通过谷歌搜索“更改构建信息的显示方式”)

it actually does make it its way to the datastore. Your instance is converted into a Dictionnary<String,String> by reflection on its properties (you may provide a type converter to Dictionnary<String,String> if you like) then stored as a build record into the database. Records are logically structured as a tree. You may retrieve this info through the TFS API.

You are using a new type for TFS which is "Foo". Thus, your info cannot yet be displayed on the build reports in Visual Studio because VS doesn't know how to represent it. You actually need to extend VS build reports with a custom addin that can convert this into WPF controls for rendering.

If you track a "BuildMessage", this is a well known type by VS, it will be displayed in the build log.

You may as well develop a Warehouse adapter to bring this data from the stored build reports to the TFS warehouse store (and also the TFS cube).

About adding custom info into the build :

My article on my blog in french (answers exactly your question, sorry, yeah... french) :

Hope this helps.
(I can't post more links at the moment since I'm a new user, contact me directly I'll send you nice URLs, or google for "Changing The Way Build Information IS Displayed")

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文