如何在 Visual Studio ErrorWindow 中获取所选项目?

问题描述

如何从 Visual Studio 错误窗口中获取所选项目?我试过下面的代码

        DTE2 dte2 = Package.GetGlobalService(typeof(DTE)) as DTE2;

        dte2.ExecuteCommand("View.ErrorList"," ");
        
        IList<string> errors = new List<string>();
        // Can get complete list.
        ErrorList errorList = dte2.ToolWindows.ErrorList;

        // Below line does not work and always returns null. 
        var item = dte2.ToolWindows.ErrorList.SelectedItems;

有没有其他方法可以获取选中的物品?

解决方法

您可以使用以下代码:

        if (await this.package.GetServiceAsync(typeof(SVsErrorList)) is IVsTaskList2 tasks)
        {
            tasks.EnumSelectedItems(out IVsEnumTaskItems itemsEnum);

复制自 Matt Lacey 的 ErrorHelper extension