2015-02-06 162 views
0

我試圖用解決方案資源管理器的自定義篩選器創建VsPackage。 我跟隨在https://msdn.microsoft.com/en-us/library/hh966591.aspx對後者的演練,我看到按鈕,我可以點擊它,但過濾器從未應用。我甚至無法調試它,因爲過濾器類中沒有單個方法被調用過。 有沒有人有編寫自定義過濾器的經驗,或者只是有同樣的問題?Visual Studio 2013擴展解決方案資源管理器篩選器

+0

您的問題過於模糊,很難回答它的當前形式,它需要將工作重點放在單個問題上並顯示一些代碼。 – Ian 2015-02-06 08:55:13

+0

該代碼與本教程中的代碼完全相同,只需按指示覆制粘貼並更新Manifest即可。 我認爲問題可能是我沒有在菜單命令回調中做任何事情。我認爲過濾器會在找到時自動加載,或者使用[SolutionTreeFilterProvider(GuidList.guidFileFilterCmdSetString,(uint)(PkgCmdIDList.cmdidFilterFile))]]屬性自動掛鉤。 如果是這樣,我不確定命令處理程序必須執行什麼操作才能應用過濾器。 今天晚些時候我會嘗試添加一些相關的代碼,因爲我現在沒有。 – user2154171 2015-02-06 09:06:25

+0

這個問題非常好。我已經轉載了這個問題。我正在調查。 – 2015-02-14 11:24:15

回答

2

命令處理程序不需要執行任何操作,實際上您可以刪除命令綁定,該過濾器通過SolutionTreeFilterProvider(guid,id)屬性的Guid/Id參數進行綁定。

你的情況似乎是VS 2013的一個bug,因爲在VS 2012中它可以工作。

我已經打開在MS連接錯誤報告:https://connect.microsoft.com/VisualStudio/feedback/details/1131606

UPDATE:這是VS 2013的文檔樣本中的錯誤,這是正確的在VS 2012:

的第一個參數的類型應該SVsServiceProvider的而不是IServiceProvider:

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