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

3

对于之前的 Visual Studio 版本,可以通过编程的方式获取错误描述信息,但这些方法在 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
    }

我的问题是,"Entry"属性包含另一个名为"IsSelected"的属性,我正在寻找它,但无法访问,就像上面注释掉的代码一样。对于我来说,动态和反射都失败了。 根据调试器,Entry属性的类型是Microsoft.VisualStudio.Shell.TableControl.Implementation.SnapshotTableEntryViewModel,这是未记录并且很可能是VS 2015内部使用的。 我该如何访问Entry和IsSelected属性,或者是否有其他方法只获取选定错误的描述?

错误已经显示在那里了。我想点击错误(在错误窗口中选择它),并获取所选错误的描述(例如缺少分号等)。 - dmihailescu
我找到了问题所在:'Entry'是一个字段而不是属性,因此导致了这个结果。 - dmihailescu
2个回答

0

截至 Visual Studio 2015,Visual Studio Error List 中没有此类功能。 以下是我能找到的来自 Microsoft 的最接近官方回复:

enter image description here


0
根据微软(Visual Studio 2015 does not display Errors List window)的说法:
根据您提供的数据,我认为您可能遇到了Visual Studio 2015预览版中新错误列表的已知问题,当您尝试双击列边缘进行调整大小时,它会表现出来。调整大小可以正常工作,但下次重新启动Visual Studio时,错误列表将无法加载。
如果您再次遇到此问题,可以通过解决方法使错误列表重新运行起来。这需要编辑注册表(应始终在备份注册表后小心进行)。
相关键是HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\NewTaskList
请按照以下步骤操作:

关闭受影响机器上所有正在运行的Visual Studio副本 打开RegEdit并定位相关键 删除整个键(当Visual Studio 2015 Preview重新启动时,它将被重新生成) 重新启动Visual Studio 2015,错误列表应该再次可用 我们已经在后续版本中修复了潜在的错误-请关注Visual Studio 2015的新版本。感谢您抽出时间尝试Visual Studio 2015 Preview


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接