J'ai un add-in VS2013 que je porte sur VS2017 et je ne peux pas parcourir les filtres de mon projet de la même manière que ça marche en 2013. Voici mon code:Itération de l'arborescence VCFilter dans Visual Studio 2017
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);
}
}
Si je mets un point d'arrêt dans la récursion, il n'a jamais frappé, malgré le fait que j'ai beaucoup de filtres dans les filtres. Le niveau supérieur des filtres est trouvé très bien.
J'ai vérifié pour LSL, et ce n'est pas allumé. Je cours VS 15.1.
Qu'est-ce que je fais mal?
EDIT: Le code ci-dessus fonctionne comme prévu jusqu'à ce que vous ajoutiez un dossier de solution, puis la récursivité ne fonctionne plus. Je suppose que cela est un bug car cela est différent du comportement dans VS2013
Malheureusement, je reçois toujours le même problème, même avec le chargement du projet plus rapide désactivé. –
Et maintenant ça marche. Aucune idée pourquoi, probablement en raison d'un redémarrage. Merci de votre aide. –