Короткий зміст: перейменування та переміщення у VS2019 з git, зберігання історії git, використання R # трохи, автоматичне оновлення залежної від проекту (важливо для sln з багатьма проектами, у нас> 200)
Я використовую наступні кроки для перейменування та переміщення проектів C # у Visual Studio 2019. Цей процес використовує R # для налаштування просторів імен. Історія git зберігається, виконуючи "git mv" (уникаючи краплі додавання / видалення історії).
Дві фази: 1) перейменування проекту на місце та 2) переміщення проекту.
(Використовується підказка з проектів для вивантаження base2 .)
Перейменуйте
- VS | Провідник рішень | клацніть правою кнопкою миші проект | Перейменуйте (наприклад, Utils.Foo в Foo).
- VS | Провідник рішень | клацніть правою кнопкою миші проект | Властивості | змінити ім'я збірки, поле імен за замовчуванням та поля Інформація про збірку
- Зробіть 1 і 2 для відповідного тестового проекту (наприклад, Utils.Foo.Tests)
- VS | Провідник рішень | правою кнопкою миші проекти (виробництво та випробування) | Рефактор | Налаштування просторів імен
- Файли XAML, які використовують проект, можливо, потрібно буде оновити (вручну або за допомогою відповідного глобального пошуку та заміни)
- Відновіть усі
- Здійснити !! (здійснити зміни перед рухами)
Примітка. Папка в Провіднику Windows до цього часу залишається старою назвою (наприклад, Utils.Foo). Це фіксується в кроках переміщення.
Рухатися
Цей метод: 1) зберігає історію git, 2) використовує R # для атомного налаштування просторів імен та 3) масове оновлення залежних проектів (уникає стомлюючого ручного редагування залежних файлів sln та csproj).
вивантажте всі проекти в рішенні (щоб видалення цільового проекту не викликало змін у залежних проектах)
VS | виберіть усі папки рішення під рішенням | клацніть правою кнопкою миші Вивантажити проекти
переміщення папок за допомогою git (так зберігається історія)
а) відкрити командний рядок розробника на 2019 рік
b) статус git (для ілюстрації "нічого робити, не працює чисте дерево")
в) git mv проект, наприклад, git mv "C: \ Code \ foo \ foo \ Utils.Foo" "C: \ Code \ Foo"
г) статус git для перегляду / підтвердження змін
- видалити проект
VS | Провідник рішень | виберіть проект | клацніть правою кнопкою миші | Видалити (оскільки всі проекти завантажені, це правильно НЕ видалить посилання на нього у залежних проектах)
- повторно додати проект (до нового місця розташування у дереві в Провіднику рішень)
а) VS | Провідник рішень | виберіть цільову батьківську папку | клацніть правою кнопкою миші | Додати | Існуючий проект
- перезавантажте всі проекти
ВАЖЛИВО: Переконайтесь, що * .csproj файли для залежних проектів були оновлені.
(VS | Team Explorer | Зміни | двічі клацніть будь-який залежний csproj, перелічений | перевірити-перевірити зміну шляху шляху ProjectReference)
- Вручну виправити контури в одному переміщеному файлі * .csproj
Використовуйте Notepad ++ (або інший текстовий редактор), щоб виправити шляхи. Часто це можна зробити за допомогою простого пошуку та заміни (наприклад, ../../../../ до ../../).
Це оновить ...
a) Посилання на GlobalAssmeblyInfo.cs
б) шляхи до пакетів
в) шляхи до файлів діаграми перевірки залежності
d) шляхи до набору правил (наприклад, <CodeAnalysisRuleSet>..\..\..\..\SolutionDependencyValidation\IgnoreWarnings.ruleset</CodeAnalysisRuleSet>
)
- Закрийте та повторно відкрийте рішення (щоб привести посилання на проект у гарну форму)
Зберегти все, закрити рішення, я віддаю перевагу видалити папки бін та obj, щоб очистити історію, повторно відкрити рішення
- Підтвердити
а) VS | Провідник команди | Зміни
i) повинен бачити поетапні зміни, які розкривають переміщені файли ii) повинні бачити залежні проекти (* .csproj), які були добре оновлені, перегляньте csproj різниться і помічайте, що шляхи прекрасно оновлені !! (це магія, що дозволяє уникнути копіткого оновлення файлів csproj вручну за допомогою текстового редактора)
б) у Провіднику Windows перевірте, чи старе місце розташування порожнє
c) Очищення рішення, відновлення рішення, запуск тестів на одиницях, запуск програм у sln.
- Здійснити !!