Ausgabefenster
auf „Allgemein“ Ausgabefenster in Visual Studio zu schreiben, müssen Sie folgendes tun:
IVsOutputWindow outWindow = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow;
Guid generalPaneGuid = VSConstants.GUID_OutWindowGeneralPane; // P.S. There's also the GUID_OutWindowDebugPane available.
IVsOutputWindowPane generalPane;
outWindow.GetPane(ref generalPaneGuid , out generalPane);
generalPane.OutputString("Hello World!");
generalPane.Activate(); // Brings this pane into view
Wenn Sie jedoch zu einem benutzerdefinierten Fenster schreiben möchten, das ist, was Sie tun müssen:
IVsOutputWindow outWindow = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow;
// Use e.g. Tools -> Create GUID to make a stable, but unique GUID for your pane.
// Also, in a real project, this should probably be a static constant, and not a local variable
Guid customGuid = new Guid("0F44E2D1-F5FA-4d2d-AB30-22BE8ECD9789");
string customTitle = "Custom Window Title";
outWindow.CreatePane(ref customGuid, customTitle, 1, 1);
IVsOutputWindowPane customPane;
outWindow.GetPane(ref customGuid, out customPane);
customPane.OutputString("Hello, Custom World!");
customPane.Activate(); // Brings this pane into view
Details zu IVsOutputWindow und IVsOutputWindowPane auf MSDN.
Fehlerliste
Für Elemente der Fehlerliste hinzugefügt hat die IVsSingleFileGenerator
einen Methodenaufruf void Generate(...)
die IVsGeneratorProgress
einen Parameter des Typs hat. Diese Schnittstelle verfügt über eine Methode void GeneratorError()
, mit der Sie Fehler und Warnungen an die Visual Studio-Fehlerliste melden können.
public class MyCodeGenerator : IVsSingleFileGenerator
{
...
public void Generate(string inputFilePath, string inputFileContents, string defaultNamespace, out IntPtr outputFileContents, out int output, IVsGeneratorProgress generateProgress)
{
...
generateProgress.GeneratorError(false, 0, "An error occured", 2, 4);
...
}
...
}
Die Details GeneratorError() auf MSDN.
Warum schreibt das Schreiben auf Standardausgabe nicht für Sie? – avakar
Schreiben einer Nachricht an Console.Write gibt mir nichts im Ausgabefenster. –