C#控制台更改以前命令/输出的颜色

C#控制台更改以前命令/输出的颜色,c#,windows,terminal,colors,console,C#,Windows,Terminal,Colors,Console,很难为这个问题找到一个合适的标题,我尽量描述我的问题 在我的命令行程序中,我使用这个库(主要是因为样式表)。一切都很好,我所有的颜色都显示正确 问题发生在我在同一控制台会话中运行另一个命令时,颜色显示正确,但先前输出的颜色也被覆盖。这会导致错误消息的颜色与调试输出的颜色相同 假设我运行program.exe init-p。我得到以下(正确)输出: 执行时间不同于其他人,这是我的错,但与问题无关 program.exe init-p 问题A:甚至可以保留以前命令的颜色而不覆盖它们吗 问题B:

很难为这个问题找到一个合适的标题,我尽量描述我的问题

在我的命令行程序中,我使用这个库(主要是因为样式表)。一切都很好,我所有的颜色都显示正确

问题发生在我在同一控制台会话中运行另一个命令时,颜色显示正确,但先前输出的颜色也被覆盖。这会导致错误消息的颜色与调试输出的颜色相同

假设我运行
program.exe init-p
。我得到以下(正确)输出:

执行时间不同于其他人,这是我的错,但与问题无关

program.exe init-p

问题A:甚至可以保留以前命令的颜色而不覆盖它们吗

问题B:我是否错过了一些基本的东西

我已经试过:

  • 运行
    colorial.Console.ReplaceAllColorsWithDefaults()程序执行后
  • 运行
    Console.ResetColor()程序执行后
  • 运行
    Console.Clear()在程序执行之后(有点有效,但是在每个命令之后清除控制台不是很好)
  • 查找相关问题
  • 在某处找到相关的东西
  • 我知道Windows控制台有颜色限制,但我没有超过它,所以我认为这与此无关。感谢您的帮助

    编辑(使用彩色.Console@1.2.10的最小可复制示例)

    当我运行此程序时,文本以颜色firebrick显示:

    如果我用不同的颜色重新编译程序并执行它:


    1)我不确定我是否看到了问题,“以前”的消息在哪里被覆盖?2) 我想我们还需要看到实际的代码,或者更好的是,a来帮助您。Windows控制台支持固定大小的调色板。如果更改该选项板中的条目,也将更改以前在该选项板中使用相同插槽的所有输出。
    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);
            }
        }
    }