Visual Studio 2013 扩展解决方案资源管理器过滤器

Visual Studio 2013 Extending Solution Explorer Filter

我正在尝试为解决方案资源管理器创建一个带有自定义筛选器的 VsPackage。 我按照 https://msdn.microsoft.com/en-us/library/hh966591.aspx 上的演练进行了后者,我看到了按钮并且可以单击它,但从未应用过滤器。而且我什至无法调试它,因为过滤器 class 中没有任何一个方法被调用过。 有没有人有编写自定义过滤器的经验或者可能只是遇到了同样的问题?

命令处理程序不需要做任何事情,实际上您可以删除命令绑定,过滤器是通过 SolutionTreeFilterProvider(guid, id) 属性的 Guid/Id 参数绑定的。

您的情况似乎是 VS 2013 的错误,因为在 VS 2012 中它可以正常工作。

我在 MS Connect 中打开了错误报告:https://connect.microsoft.com/VisualStudio/feedback/details/1131606

更新:这是 VS 2013 文档示例中的错误,它在 VS 2012 中是正确的:

第一个参数应该是 SVsServiceProvider 类型而不是 IServiceProvider:

  [ImportingConstructor]
  public FileNameFilterProvider(**SVsServiceProvider** serviceProvider, IVsHierarchyItemCollectionProvider hierarchyCollectionProvider)
  {
     ServiceProvider = serviceProvider;
     this.HierarchyCollectionProvider = hierarchyCollectionProvider;
  }