从msbuild自定义记录器返回一个集合

时间:2016-04-07 21:59:47

标签: asp.net logging msbuild

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

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

这可能吗?

1 个答案:

答案 0 :(得分:0)

您无法直接执行此操作:记录器在构建引擎构建时会被传递到构建引擎,就像在命令行上一样,并且似乎无法在msbuild中访问它脚本。也许,以编程方式,但我再也不知道如何做到这一点。此外,记录器遵循ILogger界面并且所有msbuild都可以看到,因此无论如何,您添加的任何方法都无法访问。

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