Tôi có một nhiệm vụ MSBuild tùy chỉnh cần một thời gian để hoàn thành. Nó xuất kết quả bằng cách sử dụng Log.LogMessage()
hoặc BuildEngine.LogMessageEvent()
(đã thử cả hai).Tùy chỉnh MSBuild Task: làm thế nào để tuôn ra đăng nhập trong cửa sổ đầu ra VS2012 trong khi nhiệm vụ vẫn đang chạy?
Vấn đề của tôi là tất cả đầu ra không xuất hiện trong cửa sổ đầu ra VS2012 cho đến khi tác vụ được hoàn thành, làm cho tiến trình cập nhật vô ích. Tôi muốn có đầu ra xuất hiện trong khi nhiệm vụ đang chạy, ngay lập tức.
Tôi tìm thấy các chủ đề khác nhau giải thích để gọi thường xuyên Application.DoEvents()
, nhưng điều đó dường như không giải quyết được vấn đề (có thể nó chỉ áp dụng cho VS2010 và trước đó?).
Điều này dường như là một lỗi đã biết trong VS2012 (và tôi có thể xác nhận nó cũng xảy ra trong VS2013) và trong trạng thái thông thường của Microsoft là "không thể bị làm phiền để sửa". https://connect.microsoft.com/VisualStudio/feedback/details/790444/vs2012-msbuild-cant-flush-logging Không cần phải nói, nó vô cùng khó chịu. Bạn đã bao giờ tìm cách giải quyết chưa? –
Trong VS2012, chúng tôi phải mở rộng VSPackage để trực tiếp xuất trong nhật ký cửa sổ. Dường như VS2015 khắc phục sự cố. – xen2