自定义MSBuild任务:如何在VS2012输出窗口中刷新日志,而任务仍在运行

本文关键字:任务 刷新 日志 运行 输出 MSBuild 自定义 VS2012 窗口 | 更新日期: 2023-09-27 18:14:53

我有一个自定义的MSBuild任务,需要一些时间来完成。它使用Log.LogMessage()BuildEngine.LogMessageEvent()输出进度(两者都尝试过)。

我的问题是,所有的输出不出现在VS2012输出窗口,直到任务完成,使进度更新无用。我希望在任务运行时立即显示输出。

我发现各种线程解释经常调用Application.DoEvents(),但这似乎并没有解决问题(也许它只适用于VS2010和之前?)。

自定义MSBuild任务:如何在VS2012输出窗口中刷新日志,而任务仍在运行

VS2012中已知错误。

我们最终为VS2012/2013做了一个vpackage扩展(直接在窗格日志中输出)。

这是VS 2012中的一个bug。在这个bug报告的评论中,一个别名为Will的用户代表微软在2013年7月2日写道,Though we will not have a chance to address this issue in Visual Studio 2012, we will consider this feedback when planning for future versions of Visual Studio.