我有一个需要一些时间才能完成的自定义 MSBuild 任务。它使用一个Log.LogMessage()
或BuildEngine.LogMessageEvent()
(都尝试过)输出进度。
我的问题是,在任务完成之前,所有输出都不会出现在 VS2012 输出窗口中,这使得进度更新毫无用处。我希望在任务运行时立即显示输出。
我发现各种线程解释调用频繁Application.DoEvents()
,但这似乎并没有解决问题(也许它只适用于VS2010及之前?)。
我有一个需要一些时间才能完成的自定义 MSBuild 任务。它使用一个Log.LogMessage()
或BuildEngine.LogMessageEvent()
(都尝试过)输出进度。
我的问题是,在任务完成之前,所有输出都不会出现在 VS2012 输出窗口中,这使得进度更新毫无用处。我希望在任务运行时立即显示输出。
我发现各种线程解释调用频繁Application.DoEvents()
,但这似乎并没有解决问题(也许它只适用于VS2010及之前?)。
VS2012 中的已知错误。
我们最终为 VS2012/2013 制作了一个 VSPackage 扩展(直接在窗格日志中输出)。
它已在 VS2015 中修复。
这是 VS 2012 中的一个错误。在此错误报告的评论中,一个别名为 Will 的用户代表 Microsoft 在 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.