Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver vanliga problem som kan uppstå när du använder GitHub Copilot modernisering för .NET, ordnade efter kategori. Varje post följer ett problem-, orsaks- och lösningsformat så att du snabbt kan hitta och lösa problem.
Arbetsflödesproblem
De här problemen gäller scenarioidentifiering, återupptagande av arbete och uppgiftstillstånd.
Agenten säger "inga scenarier hittades"
Cause: Agenten känner inte igen arbetsytan som ett .NET projekt.
Lösning:
- Kontrollera att arbetsytans rot innehåller en
.sln,.csprojeller.vbproj-fil. - Fråga agenten: "Vilken lösning eller projektfil använder du?"
- Om din lösning eller projektfil finns i en underkatalog öppnar du katalogen som arbetsytans rot eller pekar agenten till filen explicit.
Agenten kan inte återuppta tidigare arbete
Orsaka: Mappen .github/upgrades/ , där agenten lagrar allt sitt tillstånd, saknas eller är skadad.
Lösning:
- Kontrollera om mappen
.github/upgrades/finns i lagringsplatsens rot. - Om du har tagit bort mappen av misstag startar du scenariot på nytt. Agenten kan inte återställas utan dess tillståndsfiler.
- Om mappen finns men filerna verkar skadade ber du agenten att "omvärdera och planera om" för att återskapa dem.
Tips/Råd
Lägg till .github/upgrades/ mappen i din gren så att den bevaras mellan sessioner och datorer.
Uppgifter fastnade i processen
Orsaka: Föregående session avslutades medan agenten var mitt i aktiviteten.
Lösning:
- Agenten identifierar inaktuella uppgifter automatiskt i de flesta fall. Säg till agenten "återuppta" eller "starta om den aktuella aktiviteten".
- Om det fastnade tillståndet kvarstår anger du för agenten "markera den aktuella aktiviteten som väntande och starta om den" eller "utvärderar om och fortsätter från det senaste slutförda steget".
- Kontrollera motsvarande
progress-details.mdfil för att förstå var föregående session stoppades.
Agenten föreslår hela tiden fel scenario
Orsaka: Agentens analys hämtade oväntade projektegenskaper och härledde ett annat scenario än du avsåg.
Lösning:
Var tydlig med vad du vill ha. I stället för att "uppgradera mitt projekt" säger du:
- "Jag vill uppgradera till .NET 10."
- "Jag vill uppgradera från Newtonsoft.Json till System.Text.Json."
- "Konvertera mitt projekt till SDK-format."
Lägg till scenarioinställningar i scenario-instructions.md för att förhindra framtida felmatchningar.
Problem med bygg och kompilering
De här problemen gäller byggfel, NuGet-återställningsproblem och kodgenereringsfel.
Bygget misslyckas efter agentens ändringar
Orsaka: Uppgraderingar kan introducera icke-bakåtkompatibla API-ändringar, saknade paket eller inkompatibla kodmönster.
Lösning:
- Berätta för agenten om felet. Agenten analyserar fel automatiskt.
- Om agenten inte kan lösa problemet återställer du den senaste committen (
git revert HEAD) och ber agenten att prova en annan metod. - För att hantera komplexa fel, kontrollera
execution-log.mdför att förstå vad agenten har ändrat och i vilken ordning.
NuGet-återställningen misslyckas
Orsak: Paketinkompatibilitet med målinramningen eller autentiseringsfel med privata NuGet-flöden.
Lösning:
- För privata feeds: Autentisera till feeden innan du startar uppgraderingen.
- För inkompatibla paket: Tala om för agenten vilket paket som är problematiskt. Agenten kan söka efter kompatibla versioner eller föreslå alternativa paket.
-
För problem med feedanslutning: Kontrollera att du kan köra
dotnet restoremanuellt. Åtgärda eventuella flödesproblem först och låt sedan agenten försöka igen.
Agenten genererar kod som inte kompileras
Orsaka: AI-genererad kod kan innehålla fel, särskilt i gränsfall eller med ovanliga API-mönster.
Lösning:
- Agenten identifierar kompileringsfel automatiskt. Om agenten har problem kan du ge vägledning eller åtgärda koden manuellt och be agenten att fortsätta.
- Om agenten kämpar med en specifik korrigering efter flera försök redigerar du koden manuellt och säger till agenten: "Jag har åtgärdat kompileringsfelet i MyClass.cs markerar den här uppgiften slutförd."
- Agenten lär sig av din manuella korrigering och tillämpar liknande mönster när samma problem visas någon annanstans.
Git-problem
Anmärkning
Agenten fungerar även med icke-Git-mappar. Om din arbetsyta inte är en Git-lagringsplats hoppar agenten över Git-åtgärder (förgrening, incheckning) och tillämpar ändringar direkt på dina filer. Utan Git säkerhetskopierar du projektet manuellt innan du börjar så att du kan återställa om det behövs.
Agenten kan inte skapa en gren
Orsak: Ocommiterade förändringar i arbetsträdet, en namnkonflikt för grenen eller Git är inte initierat i arbetsytan.
Lösning:
- Spara eller mellomlagra dina väntande ändringar innan du startar ett scenario.
- Kontrollera att Git initieras genom att köra
git statusi rotmappen för arbetsytan. - Om det redan finns en gren med agentens avsedda namn tar du bort den befintliga grenen eller ber agenten att använda ett annat grennamn.
Ångra alla agentändringar
Orsaka: Uppgraderingen gick inte som planerat och du vill börja om.
Lösning:
- Växla tillbaka till den ursprungliga grenen med
git checkout main(eller basgrenen). - Agentens arbetsgren innehåller alla ändringar som är separerade från din huvudgren.
- För att ta bort agentens gren helt, kör
git branch -D <agent-branch-name>. - Om du vill behålla vissa ändringar, prioritera specifika commit-ar med
git cherry-pick <commit-hash>.
Tips/Råd
Agenten gör detaljerade incheckningar per uppgift, så att du selektivt kan behålla de ändringar som fungerade.
Prestandaproblem
De här problemen gäller uppgraderingshastighet och utvärderingsvaraktighet.
Agenten är långsam eller tar lång tid
Orsaka: Stora lösningar med många projekt, komplexa beroendediagram eller många icke-bakåtkompatibla ändringar tar naturligtvis längre tid.
Lösning:
För stora lösningar (över 50 projekt) bör du överväga att uppgradera i batchar. Gruppera relaterade projekt och uppgradera dem tillsammans.
Utvärderingen tar lång tid
Orsaka: Utvärderingen analyserar varje projekts beroenden, NuGet-paket, målramverk och tillämpliga icke-bakåtkompatibla ändringar. För stora lösningar tar utvärderingen naturligtvis längre tid.
Lösning:
- Långa utvärderingstider är normala för stora lösningar. Ingen åtgärd krävs.
- Övervaka förloppet i panelen Output (välj AppModernizationExtension från listrutan i Visual Studio).
- Utvärderingen körs bara en gång per scenario. Efterföljande faser använder de cachelagrade resultaten.
Anpassningsproblem
De här problemen gäller anpassade kunskaper och scenarioinstruktionsfiler.
Anpassad funktion plockas inte upp
Orsaka: Kunskapsfilen är på fel plats, har saknade eller ogiltiga metadata eller har ett felaktigt format.
Lösning:
- Kontrollera att kunskapsfilen finns på någon av de platser som stöds:
-
.github/skills/(lagringsplatsnivå, teamomfattande) -
.github/upgrades/skills/(scenarionivå) -
%UserProfile%/.copilot/skills/(användarnivå, personligt)
-
- Kontrollera att kunskapsmetadata innehåller minst
nameochdescriptionfält. - Bekräfta att fältet (om det
discoveryanges) är något av:lazy,preloadellerscenario. - Kontrollera att färdigheten matchar
descriptionden typ av uppgift som du förväntar dig att den ska gälla för. Agenten använder beskrivningsmatchning för att välja färdigheter.
Ändringar i scenario-instructions.md börjar inte gälla
Orsaka: Agenten kanske inte läser om filen i mitten av sessionen, eller så finns dina redigeringar i fel avsnitt.
Lösning:
- Be agenten att "läsa in instruktioner igen" eller starta en ny chattsession för att framtvinga en omläsning.
- Kontrollera att dina redigeringar finns i rätt delar av filen:
- Användarinställningar: För allmänna inställningar och begränsningar.
- Viktiga beslut: För att registrera viktiga beslut som fattats under uppgraderingen.
- Anpassade instruktioner: För specifika beteendemässiga åsidosättningar.
- Kontrollera att filen har sparats och att den ligger på den förväntade sökvägen:
.github/upgrades/{scenarioId}/scenario-instructions.md.
Få hjälp
När något inte fungerar som förväntat:
- Fråga agenten: Fråga "Vad gick fel med den senaste uppgiften?" Agenten kan ofta förklara vad som hände och föreslå nästa steg.
-
Granska körningsloggen: Öppna
execution-log.mdi.github/upgrades/{scenarioId}/. Loggen visar en kronologisk logg över vad agenten gjorde, inklusive eventuella fel som agenten stötte på. - File an issue: Om du har hittat ett fel eller om agenten konsekvent misslyckas med något kan du skicka ett problem på @modernize-dotnet GitHub-lagringsplatsen.
Relaterat innehåll
- Vad innebär modernisering av GitHub Copilot?
- Bästa praxis
- Centrala begrepp
- Vanliga frågor och svar om modernisering av GitHub Copilot