VS2015扩展-在“错误”列表中获取选定的项目

Zti*_*ick 3 vs-extensibility visual-studio-2015

我正在尝试对Visual Studio 2015进行扩展,该扩展取决于“错误列表”视图中的选定项。

我正在使用以下代码检索列表:

var errorList = this.dte2.ToolWindows.ErrorList as IVsTaskList2;
IVsEnumTaskItems items;
errorList.EnumSelectedItems(out items);
Run Code Online (Sandbox Code Playgroud)

但是我的问题是,现在我可以获得描述(文本),但没有错误代码(HelpKeyword)。我的描述是这样的:

 IVsTaskItem[] item = new IVsTaskItem[1];
 while (items.Next(1, item, null) == 0)
 {
    string description;
    item.get_Text(out description);
 }
Run Code Online (Sandbox Code Playgroud)

希望有人对此有所帮助,因为我现在对此感到很沮丧。

Cha*_*les 5

我能够使用完全不同的方法来获得此信息:

            var errorList = dte.ToolWindows.ErrorList as IErrorList;
            var selected = errorList.TableControl.SelectedEntry;
            if (selected != null)
            {
                object content;
                if (selected.TryGetValue("errorcode", out content))
                {
                    return (string)content;
                }
            }   
Run Code Online (Sandbox Code Playgroud)

这将访问错误窗口所选项作为表格,并且仅获取正确的列(文本列具有键“ text”,BTW)。

要弄清楚这一点当然并不容易。谢谢Microsoft:1)这些东西几乎完全缺少文档; 2)完全破坏了VS2013中可用的接口; 3)不只是将代码添加为ErrorItem的属性。