Сначала немного фона.
В настоящее время пространства имен и сборки в нашей кодовой базе (~ 60 сборок, тысячи классов) выглядят как
WidgetCompany.Department.Something
Теперь мы были выделены таким образом, что мы продаем программное обеспечение, которое управляет WidgetCompany, поэтому мы хотели бы переименовать пространства имен и сборки
NewCompany.Something
В нормальных условиях я, вероятно, просто придерживаюсь старого пространства имен, но проблема заключается в том, что наши клиенты не хотят видеть имя одного из своих конкурентов в любом месте приложения. В случае, если они видят трассировку стека, свойства сборки и т.д., Она не должна отображаться. Это не должно скрывать наших партнеров или делать что-то зловещее, нам просто нужно убедиться, что люди знают, что мы являемся отдельным сущностью, отдельным управлением, и им не нужно беспокоиться о совместном использовании данных и т.д.
Теперь вопрос. Каков наилучший способ выполнения этого типа переименования? Необходимо изменить следующее:
- Пространство имен для (почти) каждого класса в приложение
- Каждый оператор
using
в приложении, который ссылается на старые имена - Структура папок для каждого проекта
- Ссылки между проектами, которые зависят от измененной структуры папок
- .Sln файлы, которые ссылаются на структуру измененных папок.
- Любые ссылки на те классы, которые полностью (должно быть мало и далеко между)
- Любые ссылки на эти классы в xml конфигурационных файлах (config разделы и т.д.)
- Файлы AssemblyInfo.cs для каждой сборки
- AssemblyName в каждом файле .csproj
Я придерживался стратегии find-replace-pray или там что-то лучше?