2013-05-22 7 views
6

Ho un'attività MSBuild personalizzata che richiede del tempo per il completamento. Produce i progressi utilizzando Log.LogMessage() o BuildEngine.LogMessageEvent() (provato entrambi).Attività MSBuild personalizzata: come svuotare la registrazione nella finestra di output VS2012 mentre l'attività è ancora in esecuzione?

Il mio problema è che tutto l'output non viene visualizzato nella finestra di output di VS2012 finché l'attività non è completata, rendendo inutili gli aggiornamenti di avanzamento. Mi piacerebbe che l'output appaia mentre l'attività è in esecuzione, subito.

Ho trovato vari thread che spiegavano di chiamare frequentemente Application.DoEvents(), ma questo non sembra risolvere il problema (forse si applicava solo per VS2010 e prima?).

+3

Questo sembra essere un bug noto in VS2012 (e posso confermare che si verifica anche in VS2013) e nella solita Microsoft fashsion il suo stato è "non si può preoccupare di risolvere". https://connect.microsoft.com/VisualStudio/feedback/details/790444/vs2012-msbuild-cant-flush-logging Inutile dire che è incredibilmente fastidioso. Hai mai trovato una soluzione? –

+0

In VS2012 abbiamo dovuto estendere VSPackage per l'output direttamente nel registro del pannello. Sembra che VS2015 risolva il problema. – xen2

risposta

0

bug noto in VS2012.

Abbiamo finito per creare un'estensione VSPackage per VS2012/2013 (da esportare direttamente nel registro del riquadro).

È fissato in VS2015.

0

Si tratta di un bug in VS 2012. Nei commenti di questo bug report un utente il cui alias è Will, parlando a nome di Microsoft, ha scritto il 2 luglio del 2013 che 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.

Problemi correlati