Tóm tắt: đổi tên và di chuyển trong VS2019 với git, giữ lại lịch sử git, tận dụng R # một chút, cập nhật tham chiếu dự án phụ thuộc tự động (quan trọng đối với sln với nhiều dự án, chúng tôi có> 200)
Tôi đã sử dụng các bước sau để đổi tên các dự án C # trong Visual Studio 2019. Quá trình này sử dụng R # để điều chỉnh các không gian tên. Lịch sử git được giữ lại bằng cách thực hiện "git mv" (tránh thêm / xóa lịch sử thả).
Hai giai đoạn: 1) đổi tên dự án tại chỗ và 2) di chuyển dự án.
(Sử dụng tiền boa từ các dự án dỡ tải cơ sở2 .)
Đổi tên
- VS | Giải pháp thám hiểm | nhấp chuột phải vào dự án | Đổi tên (ví dụ: Utils.Foo thành Foo).
- VS | Giải pháp thám hiểm | nhấp chuột phải vào dự án | Thuộc tính | thay đổi tên lắp ráp, không gian tên mặc định và các trường thông tin hội
- Làm 1 và 2 cho dự án thử nghiệm tương ứng (ví dụ: Utils.Foo.Tests)
- VS | Giải pháp thám hiểm | nhấp chuột phải vào các dự án (sản xuất và thử nghiệm) | Tái cấu trúc | Điều chỉnh không gian tên
- Các tệp XAML sử dụng dự án có thể cần được cập nhật (thủ công hoặc với một tìm kiếm và thay thế toàn cầu phù hợp)
- Xây dựng lại tất cả
- Cam kết !! (để cam kết thay đổi trước khi di chuyển)
Lưu ý: Thư mục trong Windows Explorer vẫn giữ nguyên tên cũ cho đến thời điểm này (ví dụ: Utils.Foo). Điều này được cố định trong các bước di chuyển.
Di chuyển
Phương pháp này: 1) giữ lại lịch sử git, 2) tận dụng R # để điều chỉnh không gian tên nguyên tử và 3) cập nhật các dự án phụ thuộc en masse (tránh chỉnh sửa thủ công các tệp sln và csproj phụ thuộc).
dỡ tất cả các dự án trong giải pháp (để loại bỏ dự án đích không kích hoạt các thay đổi trong các dự án phụ thuộc)
VS | chọn tất cả các thư mục giải pháp trong Giải pháp | nhấn chuột phải vào Unload Project
di chuyển các thư mục bằng git (để lịch sử được duy trì)
a) mở Dấu nhắc nhà phát triển cho năm 2019
b) trạng thái git (để minh họa không có gì để cam kết, làm việc sạch cây)
c) git mv dự án, ví dụ: git mv "C: \ Code \ foo \ foo \ Utils.Foo" "C: \ Code \ Foo"
d) trạng thái git để xem / xác minh thay đổi
- loại bỏ dự án
VS | Giải pháp thám hiểm | chọn dự án | nhấp chuột phải | Xóa (vì tất cả các dự án được dỡ tải, điều này sẽ KHÔNG xóa các tham chiếu đến nó trong các dự án phụ thuộc)
- thêm lại dự án (vào vị trí mới trong cây trong Solution Explorer)
a) VS | Giải pháp thám hiểm | chọn thư mục mẹ | nhấp chuột phải | Thêm | Dự án hiện có
- tải lại tất cả các dự án
QUAN TRỌNG: Xác nhận rằng các tệp * .csproj cho các dự án phụ thuộc đã được cập nhật.
(VS | Team Explorer | Thay đổi | bấm đúp vào bất kỳ csproj phụ thuộc nào được liệt kê | kiểm tra xác minh thay đổi đường dẫn ProjectReference)
- Sửa thủ công các đường dẫn trong tệp di chuyển * .csproj
Sử dụng Notepad ++ (hoặc trình soạn thảo văn bản khác) để sửa đường dẫn. Thông thường, điều này có thể được thực hiện với một tìm kiếm và thay thế đơn giản (ví dụ: ../../../../ đến ../../).
Điều này sẽ cập nhật ...
a) Tài liệu tham khảo GlobalAssmeblyInfo.cs
b) đường dẫn đến các gói
c) đường dẫn đến tệp sơ đồ xác thực phụ thuộc
d) đường dẫn đến đường dẫn quy tắc (ví dụ <CodeAnalysisRuleSet>..\..\..\..\SolutionDependencyValidation\IgnoreWarnings.ruleset</CodeAnalysisRuleSet>
:)
- Đóng và mở lại giải pháp (để có được các tham chiếu dự án thành hình dạng tốt)
Lưu tất cả, Đóng giải pháp, tôi thích xóa các thư mục bin và obj để xóa lịch sử, Mở lại giải pháp
- Xác thực
a) VS | Đội thám hiểm | Thay đổi
i) sẽ thấy Thay đổi theo giai đoạn tiết lộ các tệp đã di chuyển ii) sẽ thấy các dự án phụ thuộc (* .csproj) được cập nhật độc đáo xem xét các khác biệt của csproj và lưu ý rằng các đường dẫn đã được cập nhật đẹp mắt !! (đây là phép thuật tránh việc cập nhật thủ công các tệp csproj bằng cách sử dụng trình soạn thảo văn bản)
b) trong Windows Explorer, xác minh vị trí cũ trống
c) Giải pháp sạch, Giải pháp xây dựng lại, Chạy thử nghiệm đơn vị, Khởi chạy ứng dụng trong sln.
- Cam kết !!