visual-studio-2015 - VS2015 扩展 - 获取错误列表中的选定项

标签 visual-studio-2015 vs-extensibility

我正在尝试为 Visual Studio 2015 做一个扩展,它依赖于错误 ListView 中的选定项目。

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

var errorList = this.dte2.ToolWindows.ErrorList as IVsTaskList2;
IVsEnumTaskItems items;
errorList.EnumSelectedItems(out items);

但我现在的问题是我能够获得描述(文本)但不能获得错误代码(HelpKeyword)。 我是这样得到描述的:

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

希望有人能帮我解决这个问题,因为我现在很沮丧。

最佳答案

我能够使用完全不同的方法得到它:

            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;
                }
            }   

这会将错误窗口中的选定项目作为表格访问,并且只获取正确的列(文本列具有键“文本”,顺便说一句)。

要弄清楚这一点当然不容易。感谢 Microsoft:1) 几乎完全没有任何此类内容的文档,2) 完全破坏了 VS2013 中工作的接口(interface),以及 3) 不仅仅是将代码添加为 ErrorItem 的属性。

关于visual-studio-2015 - VS2015 扩展 - 获取错误列表中的选定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38824629/

相关文章:

visual-studio - Visual Studio 扩展性 : How to control the loading order of components?

wpf - 键盘导航在 Visual Studio 内的 WPF 窗口中不起作用

visual-studio-addins - 如何将自定义项目模板和向导集成到 Visual Studio 包中?

c++ - VS2015拒绝未命名类型的类内初始化

c# - DTE2 事件不触发

c# - 什么是 nHibernate CollectionProxy

c++ - 是否可以在一个解决方案中包含具有不同平台工具集的项目? (MSBuild)

c++ - 当我调用 std::abort() 时,未显示 cout

winapi - 在 Windows 10 上找不到 SDK "Microsoft.VCLibs, Version=14.0"

c++ - 减少发布版本中非常大的静态库的大小