如何在VS 2015中获取所选的错误描述

时间:2015-09-14 17:34:05

标签: c# automation visual-studio-2015

对于以前版本的VS,有一些方法可以以编程方式获取错误的描述,这些方法不再适用于Visual Studio 2015。 我可以使用以下代码获取所有错误的列表:

    dynamic selection = window.Selection;
    dynamic errItems = selection.ErrorItems;
     IEnumerable ienum = errItems as IEnumerable;
var enumerator = ienum.GetEnumerator();
    while (enumerator.MoveNext())
    {
        var first = enumerator.Current;
        dynamic dfirst = enumerator.Current;
        object objerr = first.GetType().GetProperty("Description",typeof(string)).GetValue(first, null);

        // PropertyInfo pi = first.GetType().GetProperty("Entry");//pi is null
        dynamic dfirst = enumerator.Current;
        // dynamic dentr = dfirst.Entry;//keeps throwing Binder exception
    }

我的问题是,“条目”属性包含另一个名为“IsSelected”的属性,我正在寻找并且无法覆盖,正如您在上面的评论代码中所看到的那样。动态和反射都失败了。 根据调试器,Entry属性类型为Microsoft.VisualStudio.Shell.TableControl.Implementation.SnapshotTableEntryViewModel,没有文档,很可能是VS 2015内部的。 我如何才能访问Entry和IsSelected属性,或者是否有另一种解决方法来获取所选错误的描述?

2 个答案:

答案 0 :(得分:0)

从Visual Studio 2015开始,Visual Studio错误列表中没有此类功能。 以下是我可以从微软找到的最接近的官方回复:

enter image description here

答案 1 :(得分:0)

根据Microsoft(Visual Studio 2015 does not display Errors List window):

查看您提供的数据,我相信您可能已经遇到了Visual Studio 2015 Preview中新错误列表的已知问题,当您尝试双击列边缘时会显示该问题调整大小。调整大小有效,但下次重新启动Visual Studio时,错误列表无法加载。

如果您再次看到此问题,则可以解决此问题,以使您的错误列表重新启动并再次运行。这需要编辑注册表(在备份注册表后应始终谨慎进行)

相关密钥是HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0 \ NewTaskList

请按照以下步骤操作:

在受影响的计算机上关闭Visual Studio的所有正在运行的副本 打开RegEdit并找到相关密钥 删除整个键(当Visual Studio 2015预览重新启动时将重新生成) 重新启动Visual Studio 2015,错误列表应该再次可用 我们在以后的版本中修复了底层错误 - 关注Visual Studio 2015的新版本。感谢您抽出宝贵时间尝试Visual Studio 2015 Preview