Özet: git ile VS2019'da yeniden adlandırın ve taşıyın, git geçmişini koruyarak, R # biraz kaldırarak, otomatik bağımlı proje referans güncellemesi (birçok projeye sahip sln'ler için önemlidir,> 200'e sahibiz)
Visual Studio 2019'da C # projelerini yeniden adlandırmak ve taşımak için aşağıdaki adımları kullanıyorum. Bu işlem, ad alanlarını ayarlamak için R # kullanır. Git geçmişi bir "git mv" (geçmiş ekleme / silme düşüşünden kaçınarak) kullanılarak korunur.
İki aşama: 1) projeyi yerinde yeniden adlandırın ve 2) projeyi taşıyın.
( Base2 yeniden boşaltma projelerinin ipucunu kullanır .)
Adını değiştirmek
- VS | Çözüm Gezgini | sağ tıklama projesi | Yeniden adlandırın (örneğin, Utils.Foo'dan Foo'ya).
- VS | Çözüm Gezgini | sağ tıklama projesi | Özellikleri | montaj adını, varsayılan ad alanını ve Montaj Bilgisi alanlarını değiştirme
- Karşılık gelen test projesi için 1 ve 2 yapın (örn. Utils.Foo.Tests)
- VS | Çözüm Gezgini | sağ tıklama projeleri (üretim ve test) | Refactor | Ad Alanlarını Ayarlama
- Projeyi kullanan XAML dosyalarının güncellenmesi gerekebilir (manuel olarak veya uygun bir genel arama ve değiştirme ile)
- Tümünü Yeniden Oluştur
- Teslim Et !! (hamlelerden önce değişiklik yapmak)
Not: Windows Gezgini'ndeki klasör bu nokta için eski ad olarak kalır (örn. Utils.Foo). Bu, hareket adımlarında düzeltildi.
Hareket
Bu yöntem: 1) git geçmişini korur, 2) ad alanlarını atomik olarak ayarlamak için R # kullanır ve 3) bağımlı projeleri toplu olarak günceller (bağımlı sln ve csproj dosyalarının sıkıcı manuel düzenlemesini önler).
çözümdeki tüm projeleri boşaltın (böylece hedef projenin kaldırılması bağımlı projelerde değişiklikleri tetiklemez)
VS | Çözüm altındaki tüm çözüm klasörlerini seçin | Projeleri Kaldır'a sağ tıklayın
git kullanarak klasörleri taşıma (böylece geçmiş korunur)
a) 2019 için Geliştirici Komut İstemi'ni aç
b) git durumu (“taahhüt edilecek hiçbir şey yok, ağaç temiz çalışıyor”)
c) projeye git mv, örneğin git mv "C: \ Code \ foo \ foo \ Utils.Foo" "C: \ Code \ Foo"
d) Değişikliği görüntülemek / doğrulamak için git durumu
- projeyi kaldır
VS | Çözüm Gezgini | proje seç | sağ tıklama | Kaldır (tüm projeler kaldırıldığı için, bağımlı projelerde referansları doğru şekilde SİLMEZ)
- projeyi yeniden ekleyin (Solution Explorer'daki ağaçtaki yeni konuma)
a) VS | Çözüm Gezgini | hedef üst klasörü seç | sağ tıklama | Ekle | Mevcut Proje
- tüm projeleri yeniden yükle
ÖNEMLİ: Bağımlı projeler için * .csproj dosyalarının güncellendiğini doğrulayın.
(VS | Takım Gezgini | Değişiklikler | listelenen herhangi bir bağımlı csproj'a çift tıklayın | ProjectReference yolu değişikliğini denetle-doğrula)
- Tek taşınan * .csproj dosyasındaki yolları el ile düzeltme
Yolları düzeltmek için Notepad ++ (veya başka bir metin düzenleyici) kullanın. Genellikle bu basit bir arama ve değiştirme ile yapılabilir (örneğin, ../../../../ ila ../../).
Bu güncellenecek ...
a) GlobalAssmeblyInfo.cs referansları
b) paket yolları
c) Bağımlılık Doğrulama diyagram dosyalarına giden yollar
d) kural kümesi yollarına giden yollar (ör. <CodeAnalysisRuleSet>..\..\..\..\SolutionDependencyValidation\IgnoreWarnings.ruleset</CodeAnalysisRuleSet>
)
- Çözümü kapatın ve yeniden açın (proje referanslarını iyi şekle sokmak için)
Tümünü Kaydet, Çözümü Kapat, bin ve obj klasörlerini geçmişten temizlemek için silmeyi tercih ediyorum, Çözümü Yeniden Aç
- Doğrulama
a) VS | Takım Gezgini | değişiklikler
i) taşınan dosyaları ortaya Kademeli Değişiklikler görmelisiniz ii) güzel güncellenen bağımlı projeler (* .csproj) görmek gerekir csproj diffs gözden ve yolları güzelce güncellendiğini fark !! (Bu, bir metin düzenleyicisi kullanarak csproj dosyalarını zahmetli bir şekilde manuel olarak güncellemeyi önleyen sihirdir)
b) Windows Gezgini'nde eski konumun boş olduğunu doğrulayın
c) Temiz Çözüm, Çözümü Yeniden Oluştur, Birim testlerini çalıştır, Uygulamaları sln'de başlat.
- Teslim Et !!