Все инструменты рефакторинга для C # и VB.Net, которые я видел, рассматривают только исходный код в одном визуальном студийном решении.
Что бы там ни было, наша система large (многие связанные программы) распределена по множеству файлов решений, однако:
- Весь код находится под одной папкой Windows.
- Наша система сборки на основе nAnt собирает все файлы в папке Windows для создания одной библиотеки DLL (немного более сложной, чем эта, но не важной для этого вопроса).
- Следовательно, ВСЕ файлы «.cs» и «.vb» ниже одной корневой папки являются частью системы.
Поэтому я ищу инструменты рефакторинга и обратного инжиниринга, которые берут в качестве входных данных одну папку и воздействуют на все файлы в этой папке.
(Инструментам может потребоваться некоторая помощь, чтобы решить, что означает «общедоступный» и «внутренний», однако большую часть времени «внутренний» означает «в одном и том же дереве кода», когда «дерево кода» - это папка, содержащая код и любые дочерние папки.)
Теперь я жадный, мне бы хотелось, чтобы инструменты создавали множество всех выполненных рефакторингов и могли воспроизводить рефакторинги. Тогда я мог бы попробовать идеальный вариант, и если они сработают, выбросить мой код, получить последний код, вы проведете рефакторинг и зарегистрируете код, прежде чем кто-либо еще изменит файлы. (Аналогично для случаев, когда нужно объединить ветви)