stampo uscita sulla console nelle applicazioni ASP.NET MVC-WPF e da:Come programatically uscita pulita in Visual Studio 2013
System.Diagnostics.Debug.WriteLine("text");
come cancellare programatically la finestra di output?
stampo uscita sulla console nelle applicazioni ASP.NET MVC-WPF e da:Come programatically uscita pulita in Visual Studio 2013
System.Diagnostics.Debug.WriteLine("text");
come cancellare programatically la finestra di output?
All'interno delle API sottostanti, l'output di debug è un flusso solo diretto - you shouldn't assume that it is only viewable within Visual Studio. L'output di debug può essere scritto solo da un'applicazione e, se è necessario un controllo più dettagliato, deve essere mostrato nell'interfaccia utente dell'applicazione (indipendentemente dal fatto che sia una finestra della console, che può essere cancellata, o un'applicazione WinForms o WPF, ecc)
C'è un modo, come mostrato da @entropic. – Pedro77
Funzionerebbe solo quando il debugger è Visual Studio (e anche in quel caso, la versione corretta) e non qualcos'altro come DebugView errore –
// Import EnvDTE and EnvDTE80 into your project
using EnvDTE;
using EnvDTE80;
protected void ClearOutput()
{
DTE2 ide = (DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.12.0");
ide.ToolWindows.OutputWindow.OutputWindowPanes.Item("Debug").Clear();
System.Runtime.InteropServices.Marshal.ReleaseComObject(ide);
}
CS0029: Impossibile convertire implicitamente il tipo 'void' in 'EnvDTE.OutputWindowPane'. È necessario rimuovere la parte "OutputWindowPane pane =". Funziona. Questa dovrebbe essere la risposta corretta. – Pedro77
@ Pedro77 Grazie. Nel mio primo tentativo ho afferrato il pannello, poi l'ho cancellato ... ho capito che posso farlo in un solo passaggio e ho dimenticato di rimuovere il compito. – entropic
Questo è ciò che mi trovavo in 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);
}
}
credito alle risposte di cui sopra.
risposta entropica funziona. – Pedro77