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.
Bu makalede, kategoriye göre düzenlenmiş .NET için GitHub Copilot modernleştirmeyi kullanırken karşılaşabileceğiniz yaygın sorunlar ele alınıyor. Her giriş bir sorun, neden ve çözüm biçimini izler, böylece sorunları hızla bulabilir ve çözebilirsiniz.
İş akışı sorunları
Bu sorunlar senaryo bulma, çalışmayı devam ettirme ve görev durumuyla ilgilidir.
"Aracı, 'Senaryo bulunamadı' mesajını veriyor"
Cause: Aracı çalışma alanını .NET projesi olarak tanımaz.
Çözüm:
- Çalışma alanı kökünde bir
.sln,.csprojveya.vbprojdosyası olduğunu doğrulayın. - Aracıya şu soruyu sorun: "Hangi çözümü veya proje dosyasını kullanıyorsunuz?"
- Çözümünüz veya proje dosyanız bir alt dizindeyse, bu dizini çalışma alanı kökü olarak açın veya aracıyı açıkça dosyaya yönlendirin.
Yazılım aracısı önceki işine devam edemiyor
Neden: Aracının .github/upgrades/ tüm durumunu depoladığı klasör eksik veya bozuk.
Çözüm:
- Klasörün depo kökünüzde mevcut olup olmadığını
.github/upgrades/denetleyin. - Klasörü yanlışlıkla sildiyseniz senaryoyu yeni başlatın. Aracı, durum dosyaları olmadan kendini toparlayamaz.
- Klasör varsa ancak dosyalar bozuk görünüyorsa, aracıdan bunları yeniden oluşturmak için "yeniden değerlendirmesini ve yeniden planlamasını" isteyin.
Tavsiye
.github/upgrades/ klasörünü oturumlar ve makineler arasında korunacak şekilde dalınıza ekleyin.
İlerlemeyen görevler takıldı
Neden: Önceki oturum, aracı görevin ortasındayken sona erdi.
Çözüm:
- Ajan çoğu durumda eski görevleri otomatik olarak algılar. Aracıya
"devam et" veya"geçerli görevi yeniden başlat" de. - Takılmış durum devam ederse aracıya "geçerli görevi beklemede olarak işaretle ve yeniden başlat" veya "yeniden değerlendir ve son tamamlanan adımdan devam et" de.
- Önceki oturumun nerede durdurulduğunu anlamak için ilgili
progress-details.mddosyayı denetleyin.
Aracı yanlış senaryo önermeye devam ediyor
Neden: Aracının analizi beklenmeyen proje özelliklerini tespit etti ve istediğinizden farklı bir senaryo oluşturdu.
Çözüm:
Ne istediğiniz konusunda açık olun. "Projemi yükselt" yerine şunu söyleyin:
".NET 10." - "Newtonsoft.Json'dan System.Text.Json'a yükseltmek istiyorum."
- "Projemi SDK stili biçime dönüştür."
Gelecekteki uyuşmazlıkları scenario-instructions.md önlemek için senaryo tercihlerini ekleyin.
Yapılandırma ve derleme sorunları
Bu sorunlar derleme hataları, NuGet geri yükleme sorunları ve kod oluşturma hatalarıyla ilgilidir.
Derleme, ajan değişikliklerinden sonra başarısız oluyor
Neden: Yükseltmeler hataya neden olan API değişikliklerine, eksik paketlere veya uyumsuz kod desenlerine neden olabilir.
Çözüm:
- Aracıya hatadan bahsedin. Ajan hataları otomatik olarak analiz eder.
- Aracı sorunu çözemezse, son işlemeyi (
git revert HEAD) geri alın ve aracıdan farklı bir yaklaşım denemesini isteyin. - Karmaşık hatalar için,
execution-log.mdüzerinde ajanın neleri ve hangi sırayla değiştirdiğini anlamak amacıyla kontrol edin.
NuGet geri yükleme başarısız oluyor
Neden: Hedef çerçeveyle paket uyumsuzluğu veya özel NuGet beslemelerinde kimlik doğrulama hataları.
Çözüm:
- Özel akışlar için: Yükseltmeyi başlatmadan önce akışta kimlik doğrulaması yapın.
- Uyumsuz paketler için: Aracıya hangi paketin sorunlu olduğunu söyleyin. Aracı uyumlu sürümleri arayabilir veya alternatif paketler önerebilir.
-
Akış bağlantısı sorunları için: El ile çalıştırabildiğinizi
dotnet restoredoğrulayın. Önce akış sorunlarını düzeltin, sonra ajan tekrar denesin.
Aracı derlemeyen kod oluşturur
Neden: Yapay zeka tarafından oluşturulan kod, özellikle uç durumlarda veya yaygın olmayan API desenlerinde hatalar içerebilir.
Çözüm:
- Aracı, derleme hatalarını otomatik olarak algılar. Ajana zorluk çekiyorsa, yönlendirme yapın veya kodu el ile düzeltin ve ajana devam etmesini söyleyin.
- Aracı birden çok denemeden sonra belirli bir düzeltmeyle uğraşırsa kodu el ile düzenleyin ve aracıya şunu söyleyin: "MyClass.cs derleme hatasını düzelttik, bu görevi tamamlandı olarak işaretleyin."
- Aracın, el ile yaptığınız düzeltmeden öğrenir ve aynı sorun başka bir yerde ortaya çıktığında benzer örüntüler uygular.
Git sorunları
Uyarı
Aracı, Git olmayan klasörlerle de çalışır. Çalışma alanınız bir Git deposu değilse aracı Git işlemlerini (dallanma, işleme) atlar ve değişiklikleri doğrudan dosyalarınıza uygular. Git olmadan, gerekirse geri dönebilmeniz için başlamadan önce projenizi el ile yedekleyin.
Ajan dal oluşturamıyor
Neden: Çalışma ağacındaki kaydedilmemiş değişiklikler, dal adlandırma çakışması veya Git çalışma alanında başlatılmaz.
Çözüm:
- Bir senaryo başlatmadan önce bekleyen değişikliklerinizi işleyin veya saklayın.
- Git'in başlatıldığını doğrulamak için çalışma alanı kökünde
git statuskomutunu çalıştırın. - Eğer temsilcinin planlanan adına sahip bir dal zaten varsa, mevcut dalı silin veya temsilciden farklı bir dal adı kullanmasını isteyin.
Tüm aracı değişikliklerini geri alma
Neden: Yükseltme planlandığı gibi gitmedi ve baştan başlamak istiyorsunuz.
Çözüm:
- Özgün dalınıza
git checkout main(veya ana dalınıza) geri geçiş yapın. - Ajana ait iş dalı, ana dalınızdan yalıtılmış tüm değişiklikleri içerir.
- Ajanın dalını tamamen kaldırmak için
git branch -D <agent-branch-name>komutunu çalıştırın. - Bazı değişiklikleri korumak için
git cherry-pick <commit-hash>ile belirli commit'leri tek tek seçin.
Tavsiye
Aracı, görev başına ince detaylı taahhütler yapar, böylece işe yarayan değişiklikleri seçici bir şekilde tutabilirsiniz.
Performans sorunları
Bu sorunlar yükseltme hızı ve değerlendirme süresiyle ilgilidir.
Ajan yavaş veya uzun süre alıyor.
Neden: Birçok proje, karmaşık bağımlılık grafikleri veya çok sayıda hataya neden olan değişiklikler içeren büyük çözümler doğal olarak daha uzun sürer.
Çözüm:
Büyük çözümler (50'den fazla proje) için toplu olarak yükseltmeyi göz önünde bulundurun. İlgili projeleri gruplandırma ve birlikte yükseltme.
Değerlendirme uzun sürüyor
Neden: Değerlendirme, her projenin bağımlılıklarını, NuGet paketlerini, hedef çerçevelerini ve uygulanabilir yıkıcı değişiklikleri analiz eder. Büyük çözümler için değerlendirme doğal olarak daha uzun sürer.
Çözüm:
- Büyük çözümler için uzun değerlendirme süreleri normaldir. Eylem gerekmez.
- Output panelinde ilerleme durumunu izleyin (Visual Studio açılan listesinden AppModernizationExtension seçin).
- Değerlendirme senaryo başına yalnızca bir kez çalışır. Sonraki aşamalarda önbelleğe alınan sonuçlar kullanılır.
Özelleştirme sorunları
Bu sorunlar özel beceriler ve senaryo yönerge dosyalarıyla ilgilidir.
Özel beceri alınmamış
Neden: Beceri dosyası yanlış konumda, eksik veya geçersiz meta veriler içeriyor veya yanlış biçime sahip.
Çözüm:
- Beceri dosyasının desteklenen konumlardan birinde olduğunu doğrulayın:
-
.github/skills/(depo düzeyinde, ekip genelinde) -
.github/upgrades/skills/(senaryo düzeyi) -
%UserProfile%/.copilot/skills/(kullanıcı düzeyinde, kişisel)
-
- Beceri meta verilerinin en az
namevedescriptionalanları içerdiğini denetleyin. -
discoveryAlanın (ayarlandıysa) şunlardan biri olduğunu onaylayın:lazy,preloadveyascenario. - Becerinin
description, uygulanmasını beklediğiniz görev türüyle eşleştiğinden emin olun. Yazılım ajanı, becerileri seçmek için açıklama eşleştirmeyi kullanır.
scenario-instructions.md değişiklikleri geçerli olmaz
Neden: Aracının oturum sırasında dosyayı yeniden okumaması veya düzenlemelerinizin yanlış bölümde yapılmış olması olabilir.
Çözüm:
- Aracı yeniden okumaya zorlamak için "yönergeleri yeniden yüklemesini" veya yeni bir sohbet oturumu başlatmasını isteyin.
- Düzenlemelerinizin dosyanın doğru bölümlerinde olduğunu doğrulayın:
- Kullanıcı Tercihleri: Genel tercihler ve kısıtlamalar için.
- Önemli Kararlar: Yükseltme sırasında alınan önemli kararları kaydetmek için.
- Özel Yönergeler: Belirli davranışların geçersiz kılınması için.
- Dosyanın kaydedildiğini ve beklenen yolda olduğunu doğrulayın:
.github/upgrades/{scenarioId}/scenario-instructions.md.
Yardım alın
Bir şey beklendiği gibi çalışmadığında:
- Aracıya sorun:"Son görevde ne sorun oluştu?" sorusunu sorun Aracı genellikle ne olduğunu açıklayabilir ve sonraki adımları önerebilir.
-
Yürütme günlüğünü gözden geçirin:
execution-log.mdiçinde.github/upgrades/{scenarioId}/açın. Günlük, ajan tarafından yapılan işlemler ve karşılaştığı hatalar dahil olmak üzere, kronolojik bir kayıt sunar. - Sorun Bildirin: Bir hata bulduysanız veya ajan sürekli bir şeyde başarısız oluyorsa @modernize-dotnet GitHub deposunda bir hata bildirin.