Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje běžné problémy, se kterými se můžete setkat při použití modernizace GitHub Copilot pro .NET uspořádané podle kategorií. Každá položka se řídí problémem, příčinou a formátem řešení, abyste mohli rychle najít a vyřešit problémy.
Problémy s pracovním postupem
Tyto problémy se týkají zjišťování scénářů, obnovení práce a stavu úkolů.
Agent říká , že se nenašly žádné scénáře.
Cause: Agent nerozpozná pracovní prostor jako projekt .NET.
Solution:
- Ověřte, že kořenový adresář pracovního prostoru obsahuje soubor
.sln,.csprojnebo.vbprojsoubor. - Zeptejte se agenta: Jaké řešení nebo soubor projektu používáte?
- Pokud je vaše řešení nebo soubor projektu v podadresáři, otevřete tento adresář jako kořen pracovního prostoru nebo nasměrujte agenta na soubor explicitně.
Agent nemůže pokračovat v předchozí práci
Příčina: Složka .github/upgrades/, ve které agent ukládá svůj stav, chybí nebo je poškozená.
Solution:
- Zkontrolujte, jestli
.github/upgrades/složka existuje v kořenovém adresáři úložiště. - Pokud jste složku omylem odstranili, spusťte scénář znovu. Agent se nemůže obnovit bez svých stavových souborů.
- Pokud složka existuje, ale soubory se zdají být poškozené, požádejte agenta, aby je přehodnotil a přeplánoval.
Návod
Potvrďte složku do své větve .github/upgrades/, aby se zachovala napříč relacemi a počítači.
Úkoly zaseknuté v průběhu
Příčina: Předchozí relace skončila, když byl agent uprostřed úlohy.
Solution:
- Agent ve většině případů automaticky detekuje zastaralé úlohy. Řekněte agentovi "resume" nebo "restart the current task" (Restartujte aktuální úlohu).
- Pokud stav zablokování přetrvává, sdělte agentovi , že je aktuální úkol označený jako čekající, a restartujte ho , nebo "znovu sestavte a pokračujte od posledního dokončeného kroku".
- Zkontrolujte odpovídající
progress-details.mdsoubor, abyste pochopili, kde byla předchozí relace zastavena.
Agent stále navrhuje nesprávný scénář
Příčina: Analýza agenta zachytila neočekávané charakteristiky projektu a vyvodila jiný scénář, než jste zamýšleli.
Solution:
Buďte explicitní o tom, co chcete. Místo "upgradovat můj projekt", řekněte:
- "Chci upgradovat na .NET 10."
- "Chci upgradovat z Newtonsoft.Json na System.Text.Json."
- "Převést můj projekt na formát ve stylu sady SDK"
Přidejte předvolby scénářů do scenario-instructions.md, aby se předešlo budoucím neshodám.
Problémy s sestavením a kompilací
Tyto problémy se týkají selhání sestavení, problémů s obnovením NuGet a chyb generování kódu.
Sestavení po změnách agenta selže.
Příčina: Aktualizace můžou představovat zásadní změny rozhraní API, chybějící balíčky nebo nekompatibilní vzory kódování.
Solution:
- Informujte agenta o selhání. Agent automaticky analyzuje chyby.
- Pokud agent problém nevyřeší, vraťte poslední potvrzení (
git revert HEAD) a požádejte agenta, aby zkusil jiný přístup. - V případě složitých selhání zkontrolujte
execution-log.md, co agent změnil a v jakém pořadí.
K obnovení NuGet došlo k selhání
Příčina: Nekompatibilita balíčku s cílovým rámcem nebo selhání ověřování se soukromými zdroji NuGet.
Solution:
- Pro soukromé informační kanály: Ověřte se pro kanál před zahájením aktualizace.
- Nekompatibilní balíčky: Řekněte agentovi, který balíček je problematický. Agent může vyhledat kompatibilní verze nebo navrhnout alternativní balíčky.
-
Problémy s připojením informačního kanálu: Ověřte, že můžete spustit
dotnet restoreručně. Nejprve opravte všechny problémy s informačním kanálem a pak nechte agenta opakovat.
Agent generuje kód, který se nekompiluje.
Příčina: Kód generovaný umělou inteligencí může obsahovat chyby, zejména v hraničních případech nebo s neobvyklými vzory rozhraní API.
Solution:
- Agent automaticky rozpozná chyby kompilace. Pokud má agent potíže, poskytněte pokyny nebo opravte kód ručně a informujte agenta, aby pokračoval.
- Pokud agent po několika pokusech bojuje s konkrétní opravou, upravte kód ručně a sdělte agentovi: "Opravili jsme chybu kompilace v MyClass.cs, označte tuto úlohu jako dokončenou."
- Agent se učí z ruční opravy a používá podobné vzory, když se stejný problém objeví jinde.
Problémy s Gitem
Poznámka:
Agent funguje i se složkami mimo Git. Pokud váš pracovní prostor není úložištěm Git, agent přeskočí operace Gitu (větvení, potvrzení) a aplikuje změny přímo na vaše soubory. Bez Gitu zálohujte projekt před zahájením ručně, abyste se v případě potřeby mohli vrátit zpět.
Agent nemůže vytvořit větev
Příčina: Nepotvrzené změny v pracovním stromu, konflikt pojmenování větví nebo Git není inicializován v pracovním prostoru.
Solution:
- Před zahájením scénáře potvrďte nebo uložte do úschovny neuložené změny.
- Ověřte, že je Git inicializován spuštěním
git statusv kořenovém adresáři pracovního prostoru. - Pokud už větev s zamýšleným názvem agenta existuje, odstraňte existující větev nebo požádejte agenta, aby použil jiný název větve.
Zrušení všech změn agenta
Příčina: Upgrade neproběhl podle plánu a chcete začít znovu.
Solution:
- Přepněte zpět na původní větev pomocí
git checkout main(nebo základní větve). - Pracovní větev agenta obsahuje všechny změny izolované od hlavní větve.
- Pokud chcete úplně odebrat větev agenta, spusťte
git branch -D <agent-branch-name>. - Chcete-li zachovat některé změny, použijte cherry-pick pro vybrané potvrzení s
git cherry-pick <commit-hash>.
Návod
Agent provádí podrobné potvrzení pro každou úlohu, takže můžete selektivně zachovat změny, které fungovaly.
Problémy s výkonem
Tyto problémy se týkají rychlosti upgradu a doby trvání posouzení.
Agent je pomalý nebo trvá dlouho
Příčina: Velká řešení s mnoha projekty, složitými grafy závislostí nebo četnými zásadními změnami přirozeně vyžadují více času.
Solution:
U rozsáhlých řešení (50 nebo více projektů) zvažte upgrade v dávkách. Seskupte související projekty a upgradujte je společně.
Posouzení trvá dlouhou dobu.
Příčina: Posouzení analyzuje závislosti každého projektu, balíčky NuGet, cílové platformy a platné zásadní změny. U rozsáhlých řešení posouzení přirozeně trvá déle.
Solution:
- Dlouhé doby hodnocení jsou pro velká řešení normální. Není potřeba žádná akce.
- Sledujte průběh na panelu Output (v rozevíracím seznamu v Visual Studio vyberte AppModernizationExtension).
- Posouzení proběhne jenom jednou pro každý scénář. Následné fáze používají výsledky uložené v mezipaměti.
Problémy s přizpůsobením
Tyto problémy se týkají uživatelských dovedností a souborů pokynů scénáře.
Vlastní dovednost nebyla rozpoznána
Příčina: Soubor dovednosti je v nesprávném umístění, má chybějící nebo neplatná metadata, nebo má nesprávný formát.
Solution:
- Ověřte, že soubor dovednosti je v jednom z podporovaných umístění:
-
.github/skills/(na úrovni úložiště, na úrovni týmu) -
.github/upgrades/skills/(na úrovni scénáře) -
%UserProfile%/.copilot/skills/(uživatelská úroveň, osobní)
-
- Zkontrolujte, jestli metadata dovedností obsahují alespoň
namepole adescriptionpole. - Ověřte, že
discoverypole (pokud je nastaveno) je jedno z:lazy,preloadneboscenario. - Ověřte, že dovednost
descriptionodpovídá druhu úkolu, na který očekáváte, že se na ni vztahuje. Agent používá porovnávání popisů k výběru dovedností.
Změny scenario-instructions.md se neprojeví
Příčina: Agent nemusí během relace znovu načíst soubor, nebo jsou vaše úpravy ve špatné sekci.
Solution:
- Požádejte agenta, aby "znovu načetl pokyny" nebo spustil novou chatovací relaci, aby vynutil opětovné načtení.
- Ověřte, že vaše úpravy jsou ve správných oddílech souboru:
- Uživatelské předvolby: Obecné předvolby a omezení.
- Klíčová rozhodnutí: Pro zaznamenávání důležitých rozhodnutí provedených během upgradu.
- Vlastní pokyny: Pro specifické úpravy chování.
- Ověřte, že je soubor uložen v očekávané složce:
.github/upgrades/{scenarioId}/scenario-instructions.md.
Získání pomoci
Pokud něco nefunguje podle očekávání:
- Zeptejte se agenta: Zeptejte se "Co se podělalo ohledně posledního úkolu?" Agent může často vysvětlit, co se stalo, a navrhnout další kroky.
-
Zkontrolujte protokol spuštění: Otevřete
execution-log.mdv.github/upgrades/{scenarioId}/. Protokol zobrazuje chronologický záznam toho, co agent udělal, včetně chyb, ke kterým došlo. - File an issue: Pokud jste našli chybu nebo agent u něčeho konzistentně selže, vytvořte problém v úložišti @modernize-dotnet GitHub.