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?).
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? –
In VS2012 abbiamo dovuto estendere VSPackage per l'output direttamente nel registro del pannello. Sembra che VS2015 risolva il problema. – xen2