Трудно найти подходящее название для этого вопроса, я стараюсь описать мою проблему как можно лучше.
В своей программе командной строки я использую библиотеку ColorfulConsole ( в основном из-за стилей). Все работает очень хорошо, все мои цвета отображаются правильно.
Проблема возникает, когда я запускаю другую команду в том же сеансе консоли, цвета отображаются правильно, но цвета предыдущего вывода также перезаписываются. Это приводит к тому, что сообщения об ошибках имеют тот же цвет, что и выходные данные отладки.
Допустим, я запускаю program.exe init -p <unknown directory>
. Я получаю следующий (правильный) вывод:
Время выполнения отличается от других, это была моя ошибка, но не имеет ничего общего с проблемой
program.exe init -p <known directory>
Вопрос A : возможно ли сохранить цвета предыдущих команд без их перезаписи?
Вопрос B : Я пропустил что-то фундаментальное?
Я уже пытался:
- Выполнить
Colorful.Console.ReplaceAllColorsWithDefaults();
после выполнения программы - Выполнить
Console.ResetColor();
после выполнения программы - Выполнить
Console.Clear();
после выполнения программы (вроде работает, но очистка консоли после каждой команды не так уж хороша) - Найти связанную проблему проблему
- Найти что-то связанное с SO
Я знаю, что консоль Windows имеет ограничение цвета, но я Я не думаю, что это как-то связано с этим. Любая помощь приветствуется.
РЕДАКТИРОВАТЬ (минимальный воспроизводимый пример с использованием Colorful.Console @ 1.2.10)
using System;
using System.Drawing;
using Console = Colorful.Console;
namespace MinimalReproducibleApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Compiled with Color.Firebrick", Color.Firebrick);
}
}
}
Когда я запускаю эту программу, текст отображается в цветной огнеупорный кирпич:
, если я перекомпилирую программу другим цветом и выполню ее: