2013-05-22 7 views
6

Mam niestandardowe zadanie MSBuild, którego wykonanie zajmuje trochę czasu. Wyświetla postępy przy użyciu albo Log.LogMessage() lub BuildEngine.LogMessageEvent() (wypróbowano oba).Niestandardowe zadanie MSBuild: jak opróżnić logowanie w oknie wyjściowym VS2012, gdy zadanie jest nadal uruchomione?

Mój problem polega na tym, że wszystkie dane wyjściowe nie pojawiają się w oknie wyjściowym VS2012, dopóki zadanie nie zostanie ukończone, co sprawia, że ​​aktualizacje postępu są bezużyteczne. Chciałbym, aby dane wyjściowe pojawiały się, gdy zadanie jest uruchomione, natychmiast.

Znalazłem różne wątki wyjaśniające, aby często wywoływać Application.DoEvents(), ale to nie wydaje się, aby rozwiązać problem (może dotyczyło to tylko VS2010 i wcześniej?).

+3

Wygląda na to, że jest to znany błąd w VS2012 (i mogę potwierdzić, że występuje również w VS2013), aw zwykłym fashsionie firmy Microsoft jego status "nie może być naprawiony". https://connect.microsoft.com/VisualStudio/feedback/details/790444/vs2012-msbuild-cant-flush-logging Nie trzeba dodawać, że jest to niezwykle denerwujące. Czy kiedykolwiek znalazłeś obejście? –

+0

W VS2012 musieliśmy rozszerzyć VSPackage, aby bezpośrednio wyprowadzać dane w okienku. Wydaje się jednak, że VS2015 rozwiązuje problem. – xen2

Odpowiedz

0

znany błąd w VS2012.

Zakończyliśmy tworzenie rozszerzenia VSPackage dla VS2012/2013 (do bezpośredniego wyprowadzania w okienku dziennika).

Naprawiono w VS2015.

0

Jest to błąd w VS 2012. W komentarzach w tym bug report Użytkownik, którego pseudonim to Will, przemawiając w imieniu Microsoft, napisał lipca 2nd 2013, które 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.

Powiązane problemy