我有一個VS2013插件,我正在將它移植到VS2017,我發現自己無法像2013年一樣在我的項目中迭代過濾器。這是我的代碼:在Visual Studio 2017中迭代VCFilter樹
public void OnSolutionLoaded()
{
DTE2 dte = Package.GetGlobalService(typeof(DTE)) as DTE2;
foreach (Project lProject in dte.Solution.Projects)
{
if(lProject.Kind == vcContextGuids.vcContextGuidVCProject)
{
VCProject proj = (VCProject)lProject.Object;
foreach (VCFilter childFilter in (IVCCollection)proj.Filters)
{
RecurseFilters(childFilter);
}
}
}
}
private void RecurseFilters(VCFilter filter)
{
foreach(VCFilter childFilter in (IVCCollection)filter.Filters)
{
RecurseFilters(childFilter);
}
}
如果我設置的遞歸斷點,它從來沒有擊中儘管我有內過濾器過濾很多。頂級過濾器很好。
我檢查了LSL,那不是。我正在運行VS 15.1。
我在做什麼錯?
編輯:上述代碼工作正常,直到您添加解決方案文件夾,然後遞歸不再起作用。我認爲這是一個錯誤,因爲這是對行爲的不同在VS2013
可悲的是,即使禁用了更快的項目加載,我仍然遇到同樣的問題。 –
現在它正在工作。不知道爲什麼,可能是由於重新啓動。謝謝你的幫助。 –