Могу ли я отправить ошибку из консольного приложения, которое вызывается событием после сборки в Visual Studio? - PullRequest
2 голосов
/ 23 апреля 2009

Поскольку я установил событие после сборки в проекте веб-приложения ASP.net для запуска следующей командной строки.

start $ (SolutionDir) [PathToMyApplicationInSameSolution] [некоторый параметр]

Поэтому мне нужно отправить некоторую ошибку из консольного приложения в Visual Studio для отображения ошибки сборки (например, ошибка сборки Visual Studio)

Спасибо


Так что я меняю команду события после сборки на следующую команду.

$ (SolutionDir) [PathToMyApplicationInSameSolution] [некоторый параметр]

А затем я редактирую свою основную функцию для отображения ошибки. Я не вижу ничего в списке ошибок в Visual Studio. Я вижу только в вывод только. Знаете ли вы, как отобразить ошибку, например, ошибку сборки, генерируемую Visual Studio?

[STAThread]
static void Main(string[] args)
{
    Console.Error.WriteLine("Test Error");
    Console.WriteLine("test error");
}

Спасибо

Ps. Поскольку я новичок в использовании командного приложения, поэтому я забыл, что начать, как создать новый поток для консольного приложения.

Ответы [ 3 ]

2 голосов
/ 24 апреля 2009

Я нашел решение для решения этой проблемы. Visual studio обнаружит некоторую модель вывода, которая будет сообщена как ошибка. Поэтому мне не нужно менять интерфейс основного метода по умолчанию, чтобы он возвращал int (но вы можете использовать возвращаемое значение для публичной идентификации ошибки).

Подробнее: MSBuild / Visual Studio сообщения об ошибках и форматы сообщений

1 голос
/ 24 апреля 2009

Вам необходимо вернуть результат ошибки из вашего приложения. Измените тип возвращаемого значения Main на int. Вы не можете использовать «start», потому что это отбросит результат.

Если вы хотите, чтобы в окне списка ошибок отображалось сообщение об ошибке, просто выведите строку в правильном формате ...

using System;

namespace FailBuild
{
    static class Program
    {
        static int Main(string[] args)
        {
            string fileName =
                @"D:\Source\Roger\IsServiceStarted\IsServiceStarted.cpp";
            int lineNumber = 4;
            string errorCode = "X1234";
            string errorMessage = "I don't like the colour";

            Console.WriteLine("{0}({1}): error {2}: {3}",
                fileName, lineNumber, errorCode, errorMessage);
            return 1;
        }
    }
}
0 голосов
/ 23 апреля 2009

Если вы не используете «start», вывод приложения появится в окне вывода Visual Studio.

...