2013-06-13 18 views
6

for VS 2012, non sono in grado finestra di output del debugger utilizzando seguente MSDN code per cancellare,Come cancellare finestra di output debugger di Visual Studio 2012

Fondamentalmente io non sono in grado di passare oggetto DTE2, a ClearExample.

public void ClearExample(DTE2 dte) 
{ 
    // Retrieve the Output window. 
    OutputWindow outputWin = dte.ToolWindows.OutputWindow; 

    // Find the "Test Pane" Output window pane; if it doesn't exist, 
    // create it. 
    OutputWindowPane pane = null; 
    try 
    { 
     pane = outputWin.OutputWindowPanes.Item("Test Pane"); 
    } 
    catch 
    { 
     pane = outputWin.OutputWindowPanes.Add("Test Pane"); 
    } 

    // Show the Output window and activate the new pane. 
    outputWin.Parent.AutoHides = false; 
    outputWin.Parent.Activate(); 
    pane.Activate(); 

    // Add a line of text to the new pane. 
    pane.OutputString("Some text." + "\r\n"); 

    if (MessageBox.Show("Clear the Output window pane?", "", 
     MessageBoxButtons.YesNo) == DialogResult.Yes) 
     pane.Clear(); 
} 

L'utilizzo di altri collegamenti SO non può farlo funzionare per VS2012.

Is it possible to programmatically clear the Ouput Window in Visual Studio?

Can the Visual Studio (debug) Output window be programatically cleared?

risposta

4

Ecco come ho implementato esso. Nota il riferimento ad un'altra domanda-risposta che mi ha aiutato.

' #region ClearOutputWindow 
    /// <summary> 
    /// Clear the Output window-pane of Visual Studio. 
    /// Note: Causes a 1-second delay. 
    /// </summary> 
    public static void ClearOutputWindow() 
    { 
     if (!Debugger.IsAttached) 
     { 
      return; 
     } 

     //Application.DoEvents(); // This is for Windows.Forms. 
     // This delay to get it to work. Unsure why. See http://stackoverflow.com/questions/2391473/can-the-visual-studio-debug-output-window-be-programatically-cleared 
     Thread.Sleep(1000); 
     // In VS2008 use EnvDTE80.DTE2 
     EnvDTE.DTE ide = (EnvDTE.DTE)Marshal.GetActiveObject("VisualStudio.DTE.10.0"); 
     if (ide != null) 
     { 
      ide.ExecuteCommand("Edit.ClearOutputWindow", ""); 
      Marshal.ReleaseComObject(ide); 
     } 
    } 
    #endregion 

'

+0

Aggiungere EnvDTE di riferimento: per VS10: C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies \ EnvDTE.dll – mvermand

+0

Sul mio sistema a 64 bit (Windows 10 con Visual Studio 2015) 'EnvDTE.dll' si trovava sotto il percorso' C: \ Programmi (x86) \ File comuni \ Microsoft Shared \ MSEnv \ PublicAssemblies'. –

Problemi correlati