C# 如何在Visual Studio 2013中以编程方式清理输出

C# 如何在Visual Studio 2013中以编程方式清理输出,c#,visual-studio-2013,C#,Visual Studio 2013,我通过以下方式在WPF和ASP.NET-MVC应用程序的控制台上打印输出: System.Diagnostics.Debug.WriteLine("text"); 如何以编程方式清除输出窗口 在底层API中,调试输出是一个仅向前的流-。调试输出只能由应用程序编写,如果您需要更详细的控制,它应该显示在应用程序的用户界面中(无论是可以清除的控制台窗口,还是WinForms应用程序或WPF等)。这是我在VS2013、Win10、x64中使用的: private static void ClearVS

我通过以下方式在WPF和ASP.NET-MVC应用程序的控制台上打印输出:

System.Diagnostics.Debug.WriteLine("text");

如何以编程方式清除输出窗口

在底层API中,调试输出是一个仅向前的流-。调试输出只能由应用程序编写,如果您需要更详细的控制,它应该显示在应用程序的用户界面中(无论是可以清除的控制台窗口,还是WinForms应用程序或WPF等)。

这是我在VS2013、Win10、x64中使用的:

private static void ClearVS2013DebugWindow()
{
    // add reference to "C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\PublicAssemblies\envdte.dll"
    EnvDTE.DTE ide = (EnvDTE.DTE)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.12.0");
    if (ide != null)
    {
        ide.ExecuteCommand("Edit.ClearOutputWindow", "");
            System.Runtime.InteropServices.Marshal.ReleaseComObject(ide);
    }
}

以上答案值得称赞

错误CS0029:无法将类型“void”隐式转换为“EnvDTE.OutputWindowPane”。必须删除“OutputWindowPane=”部件。它起作用了。这应该是正确的答案。@Pedro77谢谢。在我的第一次尝试中,我抓住了窗格,然后清除了它。。。意识到我可以一步完成,但忘了删除赋值。熵回答有效。只有当调试器是Visual Studio(甚至是正确的版本)时才有效,而不是像DebugView这样的其他东西
private static void ClearVS2013DebugWindow()
{
    // add reference to "C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\PublicAssemblies\envdte.dll"
    EnvDTE.DTE ide = (EnvDTE.DTE)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.12.0");
    if (ide != null)
    {
        ide.ExecuteCommand("Edit.ClearOutputWindow", "");
            System.Runtime.InteropServices.Marshal.ReleaseComObject(ide);
    }
}