Я пытаюсь создать расширение для Visual Studio 2017, идея состоит в том, чтобы автоматически включать файлы, созданные в определенной папке на диске (с помощью FileSystemWatcher), любые изменения в именах папок и / или именах файлов также должны бытьотражено (включено) в проекте.
Я безуспешно искал существующее расширение.
Поработав некоторое время, я довольно близок к решению, ноТекущий подход к удалению элементов из обозревателя решений при изменении / удалении файлов / папок не масштабируется при увеличении размера решения (в нем много файлов).Мой текущий подход состоит в том, чтобы использовать корневую иерархию IVs и обрабатывать ее рекурсивно, а затем найти файл / папку на основе «canonicalName».Это означает, что я должен сканировать решение каждый раз, когда мне нужно найти папку.Решение вдохновлено этим кодом https://www.mztools.com/articles/2014/MZ2014007.aspx
Я начал с использования Project.ProjectItems, но эта коллекция иногда могла бы просто содержать «корневую» папку, то есть с этими файлами на диске
/Test/MyFile.txt
/Test/Folder1
/Test/Folder2
/Test/Folder3
Единственный ProjectItem, который я смог найти, был / Test /, он не работает, если мне нужно удалить / Test / Folder1, т.е.Подход с IVsHierarchy дал мне все папки и реализация работает, но медленно.
Итак, мой вопрос:
Есть ли способ получить ссылку на ProjectItem на основе полного путифайла / папки на диске?Чтобы мне не приходилось перебирать все элементы в решении, чтобы найти свой ProjectItem и все замедлить.Он также будет работать со ссылкой на иерархию IVs, которую я могу использовать для получения ProjectItem.
Любая помощь будет принята с благодарностью.
Приветствия!