Известно, что все приложения в Windows, после завершения передают ОС код возврата, который можно потом получить, например в BAT-файле в переменной %ERRORLEVEL% и проанализировать. Например, чтобы понять, успешно ли завершена работа программы, или же в процессе работы произошла ошибка.
А как вернуть нужный код возврата, если создаешь приложение в C#? Пока остановлюсь только на консольном приложении.
Для возврата кода в консольном приложении достаточно изменить заголовок функции Main с
static void Main(string[] args)
 на
static int Main(string[] args),
т.е. заставить главную функцию возвращать значение int (от -2147483648 до 2147483647).
Естественно, там, где функция завершается, необходимо добавить оператор
return <код_возврата>;
Программа выводит заданный в командной строке код завершения.