【问题标题】:return a collection from msbuild custom logger [closed]从 msbuild 自定义记录器返回一个集合 [关闭]
【发布时间】:2016-04-07 21:59:46
【问题描述】:

是否可以从自定义记录器中返回数组、列表或对象?

我想添加 MSBuild 生成的所有错误和警告并将它们存储在一个数组中,然后将此数组传回我的构建脚本并在必要时报告它。

这可能吗?

【问题讨论】:

  • 或许有可能,但到目前为止您尝试过什么? SO 不是“请给我代码”网站,因此您的问题很快就会结束。编写自定义记录器相对容易,这里到处都有代码示例,所以先尝试一下,然后如果遇到实际问题,请返回这里并提供一些代码并说明确切的问题。
  • 您好 stijn,感谢您的评论。我不是在寻找任何代码。我问,有没有可能。我一直在查看许多示例,但还没有看到在构建完成时从自定义记录器返回某些内容的示例。

标签: asp.net logging msbuild


【解决方案1】:

您不能直接执行此操作:记录器在构建时(例如在命令行上)被传递给构建引擎,之后似乎没有办法从 msbuild 脚本中访问它。以编程方式,也许,但我又不知道该怎么做。此外,记录器遵循 ILogger 接口,这就是 msbuild 所看到的所有内容,因此您添加的任何方法都将无法访问。

但有一些解决方法:例如,请参阅 this。诀窍是可以从 msbuild 中访问包含自定义记录器的 dll,因此,如果您有一个记录器收集事件并将它们存储在 dll 中的静态列表中,则可以使用同一 dll 中的自定义任务访问相同的列表。让该任务将静态列表作为 ItemGroup 再次返回到 msbuild 脚本,您就可以开始了。

【讨论】:

  • 出色的 stijn,正是我想要的。
猜你喜欢
  • 1970-01-01
  • 2018-01-30
  • 1970-01-01
  • 2015-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多