4

我正在创建一个包含单个文件生成器(IVsSingleFileGenerator)的 Visual Studio VSPackage,我希望能够将事件记录到 Visual Studio 错误列表(http://msdn.microsoft.com/en-us/library/33df3b7a (v=vs.110).aspx )

我正在使用 Microsoft Visual Studio SDK ( http://code.msdn.microsoft.com/windowsdesktop/Single-File-Generator-94d856d4 ) 中的示例基类。这些类有方法:

public class BaseCodeGenerator : IVsSingleFileGenerator
{
   void GeneratorError(uint level, string message, uint line, uint column);
   void GeneratorWarning(uint level, string message, uint line, uint column);
}

这让我可以发出错误和警告,但不能发出消息。方法调用IVsGeneratorProgress.GenerateErrorhttp://msdn.microsoft.com/en-US/library/microsoft.visualstudio.shell.interop.ivsgeneratorprogress.generatorerror(v=vs.90).aspx)。这种方法似乎并没有让我连接一个“消息”。

我试图在 Visual Studio 中找到对错误列表窗口的引用,以便我可以直接写入它,但我在VSConstants( http://msdn.microsoft.com/en-us/library/microsoft中没有看到任何内容.visualstudio.vsconstants(v=vs.80).aspx )。

任何人都知道如何将消息记录到 Visual Studio 错误列表中?

4

2 回答 2

4

这是不合适的,错误列表窗口可以而且应该只显示错误和警告消息。因此,自动化界面无法帮助您做到这一点。

如果您想生成额外的聊天,那么您应该将其写入“输出”窗口。可通过 IVsOutputWindowPane 接口访问,此 MSDN How-to 主题显示了 LogAnnotationToOutputWindow() 方法中的示例源代码。

于 2013-05-12T15:01:40.793 回答
2

不是直接的答案,因为我认为我也没有解决过这个问题。我选择创建并写入一个新的输出窗口。应该对您有所帮助,请参阅此来源底部的 WriteLine 方法: http ://code.google.com/p/csharptest-net/source/browse/src/Tools/CmdTool/VsInterop/BaseCodeGeneratorWithSite.cs

我认为 OutputTaskItemString 甚至可能会按照您的要求进行。

于 2013-05-12T12:58:38.513 回答