Как получить вывод для отображения на панели сообщений в списке ошибок для Visual Studio 2005?

Это версия обновления ответа Мартина выше для последней версии Swift.

    let task = Process()
    task.launchPath = "/bin/sh"
    task.arguments = ["-c", "echo 1 ; sleep 1 ; echo 2 ; sleep 1 ; echo 3 ; sleep 1 ; echo 4"]

    let pipe = Pipe()
    task.standardOutput = pipe
    let outHandle = pipe.fileHandleForReading
    outHandle.waitForDataInBackgroundAndNotify()

    var obs1 : NSObjectProtocol!
    obs1 = NotificationCenter.default.addObserver(forName: NSNotification.Name.NSFileHandleDataAvailable,
       object: outHandle, queue: nil) {  notification -> Void in
        let data = outHandle.availableData
        if data.count > 0 {
            if let str = NSString(data: data, encoding: String.Encoding.utf8.rawValue) {
                print("got output: \(str)")
            }
            outHandle.waitForDataInBackgroundAndNotify()
        } else {
            print("EOF on stdout from process")
            NotificationCenter.default.removeObserver(obs1)
        }
    }

    var obs2 : NSObjectProtocol!
    obs2 = NotificationCenter.default.addObserver(forName: Process.didTerminateNotification,
               object: task, queue: nil) { notification -> Void in
                print("terminated")
                NotificationCenter.default.removeObserver(obs2)
        }
    task.launch()
21
задан Anders Abel 1 September 2015 в 13:24
поделиться

6 ответов

Я думаю, они просто забыли о добавлении дополнительной категории: info. По крайней мере, он не указан в формате вывода для внешних инструментов.

Цитата: «Категория должна быть либо« error », либо« warning ». Регистр не имеет значения. , категория не должна быть локализована. "

Ссылка: http://blogs.msdn.com/msbuild/archive/2006/11/03/msbuild-visual-studio-aware-error-messages-and- message-sizes.aspx

5
ответ дан 29 November 2019 в 22:14
поделиться

Я не могу понимать Ваш вопрос правильно, но я дам ему выстрел так или иначе.

Вы посмотрели на TraceSwitch implentation? Можно реализовать различных слушателей и произвести информацию к различным источникам как текст, консоль, и т.д.

Это могло бы быть тем, в чем Вы нуждаетесь.

Удачи!

0
ответ дан scootdawg 1 September 2015 в 13:24
поделиться

Не могли бы вы использовать команду «Трассировка» в своем коде? Это просто поместит любой текст, который вы ему сообщаете, в окно вывода. Поэтому для размещения сообщений об ошибках вам, вероятно, потребуется сначала их отформатировать.

-2
ответ дан 29 November 2019 в 22:14
поделиться

Хорошо, я поискал, и похоже, что вы сможете это сделать, если у вас установлен Visual Studio SDK.

Я нашел эту ссылку здесь

Я считаю, что вам нужно будет использовать пространство имен Microsoft.VisualStudio.Shell.

Фрагменты кода из приведенной выше ссылки выглядят следующим образом:

//Get the "Error List Window"

ErrorListProvider errorProvider = new ErrorListProvider(this);
Task newError = new Task();
newError.ErrorCategory = TaskErrorCategory.Error; // or TaskErrorCategory.Warning for warnings
newError.Category = TaskCategory.BuildCompile;
newError.Text = "Some Error Text";
errorProvider.Tasks.Add(newError);

Я еще не пробовал это, поэтому, если вы добьетесь успеха, не могли бы вы отправьте сюда для справок в будущем.

2
ответ дан 29 November 2019 в 22:14
поделиться

Я попытался заставить это работать, и, насколько я могу судить, это невозможно если вы на самом деле не напишете свой собственный плагин для VS, который анализирует вывод и генерирует задачи. Это было бы действительно удобной функцией, и я просто надеюсь, что они добавят ее в какой-то момент в будущем (я не могу беспокоиться о написании плагина, слишком много других небольших проектов, чтобы сэкономить время: L)

В конце концов, я

1
ответ дан 29 November 2019 в 22:14
поделиться

Вы пробовали настраивать ключевые слова списка задач?

Эта страница предполагает, что это возможно. Я предлагаю вам прочитать оттуда, если вы еще не сделали этого.

0
ответ дан 29 November 2019 в 22:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: