Могу ли я отправить ошибку из консольного приложения, которое вызывается событием после сборки в Visual Studio?
Потому что я установил событие post-build в проекте веб-приложения 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 ответа
Я нашел решение, чтобы решить эту проблему. Visual studio обнаружит некоторую модель вывода, которая будет сообщена как ошибка. Поэтому мне не нужно менять интерфейс основного метода по умолчанию, чтобы он возвращал int(но вы можете использовать возвращаемое значение для публичного определения ошибки).
Больше информации: MSBuild / Visual Studio с сообщениями об ошибках и форматами сообщений
Вам необходимо вернуть результат ошибки из вашего приложения. Измените тип возвращаемого значения Main на int. Вы не можете использовать "старт", потому что это выбросит результат.
Если вы хотите, чтобы сообщение об ошибке отображалось в окне Список ошибок, просто выведите строку в правильном формате...
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;
}
}
}
Если вы не используете "start", вывод приложения появится в окне вывода Visual Studio.