对于以前版本的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
属性,或者是否有另一种解决方法来获取所选错误的描述?
答案 0 :(得分:0)
答案 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