2013-05-08 63 views
4

我正在創建一個包含單個文件生成器(IVsSingleFileGenerator)的Visual Studio VSPackage,我希望能夠將事件記錄到Visual Studio錯誤列表( http://msdn.microsoft.com/en-us/library/33df3b7a(v=vs.110).aspxVisual Studio VSPackage /單個文件生成器 - 日誌消息到錯誤列表

我正在使用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中找到對錯誤列表窗口的引用,所以我可以直接寫入它,但我沒有在(http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.vsconstants(v=vs.80).aspx)中看到任何東西。

任何人都知道如何將消息記錄到Visual Studio錯誤列表?

+0

它看起來並不像您可以從樣本中的現有方法中完成。你需要創建一個ErrorListProvider並使用它。您應該能夠使用此論壇條目底部顯示的代碼將其變爲您的解決方案:http://social.msdn.microsoft.com/forums/en-US/vsx/thread/a1d37fdf-09e0-41f9 -a045-52a8109b8943/ – 2013-05-11 19:54:35

回答

2

不是一個直接的答案,因爲我不認爲我曾經解決過這個問題。我選擇創建並寫入新的輸出窗口。應該對你有所幫助,參見源代碼底部的WriteLine方法: http://code.google.com/p/csharptest-net/source/browse/src/Tools/CmdTool/VsInterop/BaseCodeGeneratorWithSite.cs

我認爲OutputTaskItemString甚至可以做你正在問的東西。

+0

感謝您的回覆。標記爲正確的是因爲它包含了一個到源代碼的鏈接,儘管@hans和csharptest.net都是正確的。 – 2013-05-23 12:24:09

4

這只是不恰當,錯誤列表窗口可以也應該只顯示錯誤和警告消息。自動化界面因此不會幫助您做到這一點。

如果你想產生額外的聊天,那麼你應該寫到輸出窗口。通過IVsOutputWindowPane接口可以訪問,this MSDN How-to topic在LogAnnotationToOutputWindow()方法中顯示示例源代碼。

+0

感謝您的信息。雖然我仍然覺得奇怪的是'錯誤列表'窗口顯示'錯誤','警告'和'消息',但API只允許你訪問前兩個。好吧,我會像你所建議的那樣寫入輸出窗口。 – 2013-05-23 12:22:42