Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
.NET projeleri yükseltirken GitHub Copilot yükseltmeden en iyi sonuçları almak için bu yönergeleri izleyin.
Başlamadan önce
En iyi sonuçları elde etmek için yükseltmeye başlamadan önce projelerinizi hazırlayın.
Çözüm derlemelerinizin ve testlerinizin başarılı olduğunu doğrulayın
Aracı, yaptığı değişiklikleri doğrulamak için derlemeleri ve testleri çalıştırır. Çözümünüz başlamadan önce zaten bozuksa, ajan önceden var olan hataları kendi neden olduğu sorunlardan ayıramaz.
Aracının bunları yoksayacağını bilmesi için scenario-instructions.md içindeki bilinen tüm test hatalarını belgeleyin.
Kaydedilmemiş işleri işleme veya hazırlama
Kaydedilmemiş değişikliklerinizi aracının değişiklikleriyle karıştırmamak için temiz bir çalışma diziniyle başlayın. Temiz bir taban çizgisi, değişiklikleri gözden geçirmeyi veya geri döndürmeyi kolaylaştırır.
git stash
git status
Git dışı depoları yedekleme
Aracı, kaynak denetimi altında olmayan klasörlerle de çalışır. Projeniz git deposunda değilse aracı dal ve işleme işlemlerini atlar. Bu durumda, gerekirse geri yükleyebilmeniz için başlamadan önce proje klasörünüzü yedekleyin.
Bir bulut sağlayıcısına göndermeseniz bile yükseltmeyi başlatmadan önce yerel bir Git deposu başlatmayı göz önünde bulundurun. Yerel git deposu şunları yapmanızı sağlar:
- ile
git reverttek tek değişiklikleri geri alma. - İşleme geçmişinde yükseltme ilerleme durumunu adım adım izleyin.
- Hangi değişikliklerin tutulacağını veya atılacağını kontrol edin.
- Ajansınız ayrı bir dalda çalışırken özgün kodunuzu ana dalda güvende tutun.
cd your-project-folder
git init
git add .
git commit -m "Baseline before upgrade"
Test kapsamınızı gözden geçirin
Aracı, değişikliklerinin davranışı bozmadığını doğrulamak için testlere güvenir. İyi test kapsamına sahip projeler daha yüksek güvenilirlik yükseltmeleri alır.
Tip
100% kapsama ihtiyacınız yoktur. Api sınırları, serileştirme, veritabanı erişimi ve kimlik doğrulaması gibi yükseltmenin değişme olasılığı en yüksek koda odaklanın.
Küçükten başla
Ajana ilk kez kullanıyorsanız, deneme projesi olarak küçük, düşük riskli bir proje seçin. Sınıf kitaplığı veya yardımcı program projesi idealdir. Küçük bir başlangıç yapmak, ana uygulamanızı ele almadan önce iş akışını anlamanıza, güven oluşturmanıza ve depoya özgü sorunları keşfetmenize olanak tanır.
Yükseltme sırasında
Yükseltme sırasında aracı çalışırken bu yönergeleri izleyin.
İlk yükseltmeniz için kılavuzlu modu kullanma
Ajan, hem yönlendirmeli hem de otomatik modları destekler. Kılavuzlu modda ajan, gözden geçirmeniz ve onayınız için önemli karar noktalarında ara verir. Aracının veya ajanın ne yaptığını ve neden yaptığını anlamak için rehberli modla başlayın. İş akışından memnun kaldığınızda otomatik moda geçin.
Değerlendirmeyi dikkatle gözden geçirin
Değerlendirme, aracı değişiklik yapmaya başlamadan önce sorunları yakalamak için en iyi fırsatınızdır. Şunu arayın:
- Ajansın atlamış veya hatalı tanımlamış olabileceği projeler.
- Bildiğiniz bağımlılıklar sorunludur.
- Çözümünüzle ilgili ajanın bilmesi gereken olağandışı herhangi bir şey.
Bir şey fark ederseniz, sohbette aracıya bildirin veya bilgileri scenario-instructions.md öğesine ekleyin. Aracı planlamaya geçmeden önce doğrudan assessment.md düzenleyerek bağlam ekleyin, yanlış tanımlanmış projeleri düzeltin veya endişeleri işaretleyin.
Planlama aşamasıyla zaman geçirin
Ajan, değerlendirmesine dayanarak bir plan oluşturur. Devam etmeden önce planı gözden geçirin:
- Sipariş, kod tabanınız için anlamlı mı?
- Acentenin bilmediği bağımlılıklar var mı?
- Herhangi bir proje farklı şekilde dışlanmalı veya işlenmeli mi?
Aracıdan görevleri yeniden sıralamasını, projeleri atlayıp yaklaşımını değiştirmesini isteyin. Kod tabanınızı aracıdan daha iyi bildiğiniz için bu bilgiyi kullanın.
plan.md Görev sırasını ayarlamak, görev eklemek veya görevleri kaldırmak için dosyayı doğrudan düzenleyin.
Caution
Doğrudan düzenlerken plan.md dikkatli olun. Değişiklikleriniz çelişkili yönergeler oluşturuyorsa, aracı bunları tam olarak yorumlayamayabilir. Örneğin, bağımlı olan projeleri tutarken bağımlılık projesini kaldırma.
Hemen geri bildirimde bulunmak
Aracı, bir oturumdaki düzeltmelerinizden öğrenir. Eğer temsilcinin yaptığı bir seçime katılmıyorsanız:
- Hemen söyleyin: "Bu deseni kullanmayın, bunun yerine X kullanın."
- Aracın, görevler ve oturumlar arasında hatırlaması için
scenario-instructions.md'a kalıcı bir rehber ekleyin.
Yürütme sırasında etkileşimde kalın
Gerçekleştirme elle müdahale gerektirmez. Aracıya başlamasını söylemeden önce gözden geçirin tasks.md:
- Görev sırası kod tabanınız için anlamlı mı?
- Atlamak veya yeniden sorgulamak istediğiniz görevler var mı?
- Herhangi bir görev eksik mi?
Aracıdan, yürütme başlamadan önce tasks.md'yi doğrudan düzenlemesini veya görev listesini ayarlamasını isteyin. Yürütmeye başladıktan sonra, eğer ajan görevin ortasında yanlış bir karar alırsa, bunu hemen söyleyin; böylece, bundan sonraki işlemlerde düzeltmenizi uygular.
Kod tabanınızı aracıdan daha iyi biliyorsunuz, bu nedenle bu bilgiyi her aşamada kullanın.
Yaygın tuzaklar
Yükseltmeyi yavaşlatabilecek veya karmaşık hale getiren bu yaygın sorunları izleyin.
50'den fazla proje içeren büyük çözümler
Ajan proje bazında çalışır, bu yüzden büyük çözümler zaman alır. Sabırlı olun ve ilerleme durumunu izleyin. Tam çözüme işlemeden önce uçtan uca tek bir temsili projeyle başlamayı göz önünde bulundurun. Tek projelik bir pilot uygulama, sistemik sorunları erken ortaya çıkarır.
Özel NuGet akışları
Gizli NuGet akışları için, yükseltmeye başlamadan önce kimliğinizi doğrulayın (örneğin, kuruluşunuzun kimlik bilgisi sağlayıcısı veya akış yapılandırması aracılığıyla). Kimlik doğrulaması olmadan paket geri yükleme hataları ilerleme durumunu engeller.
Özel MSBuild hedefleri ve içeri aktarımları
Özel .targets dosyalar, koşullu içeri aktarmalar veya standart olmayan derleme mantığı gibi karmaşık derleme özelleştirmeleri değerlendirmeyi karıştırabilir ve beklenmeyen derleme hatalarına neden olabilir. Çözümünüzde bu özelleştirmeler varsa, temsilcinin bunları dikkate alması için sohbette veya scenario-instructions.md bahsedin.
Oturum zaman aşımları
Uzun süren yükseltmeler birden çok oturuma yayılabilir. Aracı, .github/upgrades/ altında bulunan iş akışı dosyalarındaki ilerleme durumunu izler, böylece kaldığı yerden devam edebilir. Yeni bir oturum başlattığınızda nerede olduğunuzdan bahsedin: ".NET 10 yükseltmesine devam edin. Data.Access projesinin ortasındaydım."
Etkili bir şekilde işbirliği yapma
Etkileşiminizin kalitesi sonuçların kalitesini doğrudan etkiler.
Kapsam hakkında özel olun
Ne kadar özelleştirirseniz, ajan o kadar iyi performans gösterir.
| Bunun yerine | Deneyin |
|---|---|
| "Her şeyi yükselt" | |
| "Derlemeyi düzelt" | "Kaldırılan API ile ilgili CustomerService.cs derleme hatasını düzeltin" |
| "Veritabanı öğeleri yükseltin" | "Depo projesinde Entity Framework 6'yi EF Core'a yükseltin" |
Kısıtlamalarınızı paylaşma
Ajana, gerçek dünya kısıtlamalarını önceden bildirin.
- "Genel API için geriye dönük uyumluluğu bozamıyoruz."
- "İki hafta içinde yayın tarihimiz var, bu nedenle web projelerine öncelik verin."
- "Eski raporlama modülü bu yükseltmenin dışında tutulmalıdır."
Mimarinizi açıklayın
Aracı kod yapısını analiz eder, ancak ekibinizin zihinsel modelini bilmez. Ajanın anlamasına yardımcı olun:
- "Project A, paylaşılan kitaplığımızdır. B, C ve D'nin hepsi buna bağlı."
- "WebApi projesi genel kullanıma yönelik API'mizdir; Internal.Api yalnızca iç hizmetler içindir."
- "Models projesi OpenAPI belirtimimizden otomatik olarak oluşturulur. Doğrudan değiştirmeyin."
Nedenini sor
Etmen, gerekçelerini açıklayabilir. Bir karar doğru görünmüyorsa şunu sorun:
- "Neden alt sırayı seçtiniz?"
- "Bu paketi neden Y yerine X sürümüne yükselttiniz?"
- "Bunu neden alt görevlere böldn?"
Mantığı anlamak daha iyi geri bildirimler vermenize yardımcı olur.
Tercihleri erken kaydetme
Kodlama stili, desenler veya yaklaşımlar hakkında güçlü tercihleriniz varsa, bunları ilk oturum sırasında scenario-instructions.md'a ekleyin. Bu dosya oturumlar arasında kalıcıdır ve her zaman aracının bağlamındadır ve davranışı etkilemenin en güvenilir yoludur.
Sorunları Giderme
Yükseltme beklendiği gibi gitmediğinde bu stratejileri kullanın.
Görevin ardından yapı hataları
Aracıya şunu söyleyin: "Derleme son görevden sonra başarısız oluyor." Aracı hatayı analiz eder ve düzeltmeye çalışır. Yetkili sorunu çözemezse:
- El ile düzeltme sağlayın ve temsilciye ne yaptığınızı söyleyin. Aracı, yaptığınız düzeltmeden öğrenir.
- İşlemeyi geri alın (
git revertveya önceki işlemeye sıfırlayın) ve aracıdan farklı bir yaklaşım denemesini isteyin. - Sorunlu görevi atlayın ve daha sonra geri dönün.
Yanlış strateji seçildi
Eğer ajanın genel yaklaşımı kod tabanınızda işe yaramazsa, planlama aşamasını yeniden başlatın.
- "Planı tekrarlayalım. Aşağıdan yukarı gitmek yerine önce web projelerini yükseltmek istiyorum."
- "Tüm paylaşılan kitaplıkları tek bir toplu işte yükseltmek için stratejiyi değiştirin."
Ajan bir döngüde sıkıştı
Aracı ilerlemeden aynı çözümü tekrarlarsa "Durdur" deyin ve gözlemlediğiniz şeyi açıklayın veya oturumu manuel olarak durdurun. Ajan yaklaşımını sıfırlayabilir ve farklı bir şey deneyebilir.
Tüm değişiklikleri geri alma
Yükseltme için bir Git dalı kullandıysanız, özgün dalınıza geri dönerek her şeyi geri alın:
git checkout your-original-branch
git branch -D upgrade-branch
Özgün kodunuz dokunulmamış. Kaynak denetimi olmadan çalışıyorsanız, başlamadan önce yaptığınız yedeklemeden geri yükleyin.
Güvenlik ve gizlilik
- Code kod parçacıkları: GitHub Copilot bunları GitHub Copilot gizlilik ilkesine göre işler ve bunları anında oturum dışında tutmaz.
-
İş akışı dosyaları (
scenario-instructions.md, özel görevler, tercihler) altında.github/upgrades/deponuzda kalır. GitHub bu dosyaları dış hizmetlere iletmez. -
Bu klasör
.github/upgrades/, deponuzun bir parçasıdır. Yükseltme ilerleme durumunuzu ve durumunuzu içerdiğinden klasörü işleyin. Aracının, oturumlar arasında çalışmayı devam ettirmek için klasöre ihtiyacı var. Yükseltme tamamlandıktan sonra kaldırabilirsiniz. - Telemetri: IDE'nizin telemetri ayarları aracılığıyla devre dışı bırakın.
Performans ipuçları
- Gereksiz dosyaları ve sekmeleri kapatma: Aracı etkin çalışma alanını analiz eder ve daha az açık dosya daha az kirlilik anlamına gelir.
- Çok büyük çözümler için aşamalı yükseltme: Tüm projeleri aynı anda yükseltmek yerine toplu işleyin. Örneğin, önce tüm kitaplıkları, ardından tüm web projelerini ve ardından testleri yükseltin.
- Derleme önbelleğini kullanma: Aracı doğrulama sırasında birçok artımlı derleme çalıştırır. Sıcak derleme önbellekleri doğrulamayı önemli ölçüde hızlandırır. Görevler arasındaki yapı çıktısını temizlemekten kaçının.