Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano typowe problemy, które mogą wystąpić podczas używania modernizacji GitHub Copilot dla .NET, uporządkowane według kategorii. Każdy wpis jest zgodny z formatem problemu, przyczyny i rozwiązania, dzięki czemu można szybko znaleźć i rozwiązać problemy.
Problemy z przepływem pracy
Te problemy dotyczą odnajdywania scenariuszy, wznawiania pracy i stanu zadania.
Agent mówi "nie znaleziono scenariuszy"
Cause: Agent nie rozpoznaje obszaru roboczego jako projektu .NET.
Rozwiązanie:
- Sprawdź, czy katalog główny obszaru roboczego zawiera plik
.sln,.csprojlub.vbproj. - Zapytaj agenta: "Jakiego rozwiązania lub pliku projektu używasz?"
- Jeśli rozwiązanie lub plik projektu znajduje się w podkatalogu, otwórz ten katalog jako katalog główny obszaru roboczego lub wskaż agenta jawnie plikowi.
Agent nie może wznowić poprzedniej pracy
Przyczyna: Folder .github/upgrades/, w którym agent przechowuje swój stan, jest brakujący lub uszkodzony.
Rozwiązanie:
- Sprawdź, czy
.github/upgrades/folder istnieje w katalogu głównym repozytorium. - Jeśli folder został przypadkowo usunięty, uruchom scenariusz świeży. Agent nie może się zregenerować bez plików statusu.
- Jeśli folder istnieje, ale pliki są uszkodzone, poproś agenta o ponowne oceny i ponowne zaplanowanie, aby je ponownie wygenerować.
Napiwek
Zatwierdź folder .github/upgrades/ do Twojej gałęzi, aby był zachowywany we wszystkich sesjach i na wszystkich maszynach.
Zadania zablokowane w toku
Przyczyna: Poprzednia sesja zakończyła się, gdy agent był w połowie zadania.
Rozwiązanie:
- Agent w większości przypadków automatycznie wykrywa nieaktualne zadania. Poinformuj agenta "wznów" lub "uruchom ponownie bieżące zadanie".
- Jeśli stan blokady będzie się powtarzać, poinformuj agenta "oznacz bieżące zadanie jako oczekujące i uruchom je ponownie" lub "ponownie oceń, a następnie kontynuuj od ostatniego ukończonego kroku".
- Sprawdź odpowiedni
progress-details.mdplik, aby dowiedzieć się, gdzie została zatrzymana poprzednia sesja.
Agent ciągle sugeruje niewłaściwy scenariusz
Przyczyna: Analiza agenta wykryła nieoczekiwane cechy projektu i wywnioskowała inny scenariusz niż zamierzałeś.
Rozwiązanie:
Bądź jawny o tym, co chcesz. Zamiast "uaktualnić mój projekt", powiedz:
- "Chcę uaktualnić do wersji .NET 10."
- "Chcę uaktualnić plik Newtonsoft.Json do pliku System.Text.Json"."
- "Przekonwertuj projekt na format w stylu zestawu SDK".
Dodaj preferencje scenariusza do scenario-instructions.md, aby zapobiec przyszłym niezgodnościom.
Problemy z budowaniem i kompilacją
Te problemy dotyczą błędów kompilacji, problemów z przywracaniem nuGet i błędów generowania kodu.
Proces budowania kończy się niepowodzeniem po zmianach wprowadzonych przez agenta
Spowodować: Uaktualnienia mogą wprowadzać zmiany interfejsu API powodujące niezgodność, brakujące pakiety lub niezgodne wzorce kodu.
Rozwiązanie:
- Poinformuj agenta o niepowodzeniu. Agent automatycznie analizuje błędy.
- Jeśli agent nie może rozwiązać problemu, przywróć ostatnie zatwierdzenie (
git revert HEAD) i poproś agenta o wypróbowanie innego podejścia. - W przypadku złożonych niepowodzeń sprawdź
execution-log.md, co zmienił agent i w jakiej kolejności.
Przywracanie nuGet kończy się niepowodzeniem
Przyczyna: Niezgodność pakietu z platformą docelową lub niepowodzenia uwierzytelniania z prywatnymi repozytoriami NuGet.
Rozwiązanie:
- W przypadku kanałów prywatnych: Uwierzytelnij się w kanale informacyjnym przed rozpoczęciem uaktualniania.
- W przypadku niezgodnych pakietów: Poinformuj agenta, który pakiet jest problematyczny. Agent może wyszukiwać zgodne wersje lub sugerować alternatywne pakiety.
-
W przypadku problemów z łącznością kanału danych: Sprawdź, czy możesz go uruchomić
dotnet restoreręcznie. Najpierw rozwiąż wszelkie problemy ze źródłem danych, a następnie pozwól agentowi ponowić próbę.
Agent generuje kod, który nie jest kompilowany
Spowodować: Kod generowany przez sztuczną inteligencję może zawierać błędy, szczególnie w przypadkach brzegowych lub z nietypowymi wzorcami interfejsu API.
Rozwiązanie:
- Agent wykrywa błędy kompilacji automatycznie. Jeśli agent ma problemy, podaj wskazówki lub napraw kod ręcznie i poinformuj agenta o kontynuowaniu.
- Jeśli agent zmaga się z określoną poprawką po wielu próbach, edytuj kod ręcznie i poinformuj agenta: "Usunęliśmy błąd kompilacji w MyClass.cs, oznacz to zadanie jako ukończone".
- Agent uczy się z ręcznej poprawki i stosuje podobne wzorce, gdy ten sam problem pojawia się w innym miejscu.
Problemy z usługą Git
Uwaga / Notatka
Agent działa również z folderami innych niż Git. Jeśli obszar roboczy nie jest repozytorium Git, agent pomija operacje git (rozgałęzianie, zatwierdzanie) i stosuje zmiany bezpośrednio do plików. Bez usługi Git utwórz kopię zapasową projektu ręcznie przed rozpoczęciem, aby można było przywrócić go w razie potrzeby.
Agent nie może utworzyć gałęzi
Przyczyna: Niezatwierdzone zmiany w drzewie roboczym, konflikt nazewnictwa gałęzi lub Git nie jest zainicjowany w obszarze roboczym.
Rozwiązanie:
- Przed rozpoczęciem scenariusza zatwierdź lub schowaj oczekujące zmiany.
- Sprawdź, czy usługa Git została zainicjowana, uruchamiając polecenie
git statusw katalogu głównym obszaru roboczego. - Jeśli gałąź o zamierzonej nazwie agenta już istnieje, usuń istniejącą gałąź lub poproś agenta o użycie innej nazwy gałęzi.
Cofnij wszystkie zmiany agenta
Przyczyna: Uaktualnienie nie poszło zgodnie z planem i chcesz zacząć od nowa.
Rozwiązanie:
- Wróć do oryginalnej gałęzi, używając
git checkout main(lub do gałęzi podstawowej). - Gałąź robocza agenta zawiera wszystkie zmiany odizolowane od gałęzi głównej.
- Aby całkowicie usunąć gałąź agenta, uruchom polecenie
git branch -D <agent-branch-name>. - Aby zachować pewne zmiany, wybierz określone commity za pomocą polecenia
git cherry-pick <commit-hash>.
Napiwek
Agent wykonuje szczegółowe zatwierdzenia dla każdego zadania, dzięki czemu można selektywnie zachować zmiany, które były skuteczne.
Problemy z wydajnością
Te problemy dotyczą szybkości uaktualniania i czasu trwania oceny.
Agent działa wolno lub jest opóźniony
Przyczyna: Duże rozwiązania z wieloma projektami, złożonymi grafami zależności lub wieloma zmianami powodującymi niezgodność naturalnie trwają dłużej.
Rozwiązanie:
W przypadku dużych rozwiązań (50+ projektów) rozważ uaktualnianie etapami. Grupuj powiązane projekty i uaktualnij je razem.
Ocena trwa długo
Przyczyna: Ocena analizuje zależności każdego projektu, pakiety NuGet, platformy docelowe i odpowiednie zmiany powodujące niekompatybilność. W przypadku dużych rozwiązań ocena naturalnie trwa dłużej.
Rozwiązanie:
- Długie czasy oceny są normalne w przypadku dużych rozwiązań. Nie jest wymagana żadna akcja.
- Monitoruj postęp w panelu Output (wybierz pozycję AppModernizationExtension z listy rozwijanej w Visual Studio).
- Ocena jest uruchamiana tylko raz na scenariusz. Kolejne fazy używają buforowanych wyników.
Problemy z dostosowywaniem
Te problemy dotyczą niestandardowych umiejętności i plików instrukcji scenariusza.
Umiejętność niestandardowa nie jest rozpoznawana
Przyczyna: Plik umiejętności znajduje się w niewłaściwej lokalizacji, ma brakujące lub nieprawidłowe metadane lub ma nieprawidłowy format.
Rozwiązanie:
- Sprawdź, czy plik umiejętności znajduje się w jednej z obsługiwanych lokalizacji:
-
.github/skills/(na poziomie repozytorium, na poziomie zespołu) -
.github/upgrades/skills/(poziom scenariusza) -
%UserProfile%/.copilot/skills/(poziom użytkownika, osobisty)
-
- Sprawdź, czy metadane umiejętności zawierają co najmniej pola
nameidescription. - Upewnij się, że
discoverypole (jeśli ustawiono) jest jednym z następujących elementów:lazy,preloadlubscenario. - Upewnij się, że
descriptionumiejętności pasuje do rodzaju zadania, do którego chcesz ją zastosować. Agent używa dopasowania opisu, aby wybrać umiejętności.
Zmiany w pliku scenario-instructions.md nie wchodzą w życie
Przyczyna: Agent może nie odczytać ponownie pliku w trakcie sesji lub Twoje edycje są w niewłaściwej sekcji.
Rozwiązanie:
- Poproś agenta o "ponowne załadowanie instrukcji" lub rozpoczęcie nowej sesji czatu, aby wymusić ponowne odczytanie.
- Sprawdź, czy zmiany znajdują się w odpowiednich sekcjach pliku:
- Preferencje użytkownika: W przypadku ogólnych preferencji i ograniczeń.
- Kluczowe decyzje: Do rejestrowania ważnych decyzji podjętych podczas uaktualniania.
- Instrukcje niestandardowe: Do konkretnych zmian zachowań.
- Sprawdź, czy plik został zapisany i w oczekiwanej ścieżce:
.github/upgrades/{scenarioId}/scenario-instructions.md.
Uzyskaj pomoc
Gdy coś nie działa zgodnie z oczekiwaniami:
- Zapytaj agenta: Zapytaj "Co poszło nie tak z ostatnim zadaniem?" Agent często może wyjaśnić, co się stało i zasugerować kolejne kroki.
-
Przejrzyj dziennik wykonywania: Otwórz plik
execution-log.mdw pliku.github/upgrades/{scenarioId}/. Dziennik przedstawia chronologiczny zapis tego, co zrobił agent, w tym wszelkie napotkane błędy. - Zgłoś problem: Jeśli znalazłeś usterkę lub agent stale nie działa prawidłowo, zgłoś problem w repozytorium GitHub @modernize-dotnet.