Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden veelvoorkomende problemen behandeld die kunnen optreden wanneer u GitHub Copilot modernisering gebruikt voor .NET, ingedeeld op categorie. Elke vermelding volgt een structuur van probleem, oorzaak en oplossing, zodat u snel problemen kunt vinden en oplossen.
Werkstroomproblemen
Deze problemen hebben betrekking op scenariodetectie, hervatting van werk en taakstatus.
Agent zegt 'geen scenario's gevonden'
Cause: De agent herkent de werkruimte niet als een .NET project.
Solution:
- Controleer of de hoofdmap van de werkruimte een
.sln,.csprojof.vbprojbestand bevat. - Vraag het de agent: "Welke oplossing of projectbestand gebruikt u?"
- Als uw oplossing of projectbestand zich in een submap bevindt, opent u die map als de hoofdmap van de werkruimte of wijst u de agent expliciet naar het bestand.
De agent kan het vorige werk niet hervatten
Oorzaak: De .github/upgrades/ map, waarin de agent alle status opslaat, ontbreekt of is beschadigd.
Solution:
- Controleer of de
.github/upgrades/map bestaat in de hoofdmap van je repository. - Als u de map per ongeluk hebt verwijderd, start u het scenario opnieuw. De agent kan niet herstellen zonder de statusbestanden.
- Als de map bestaat maar bestanden beschadigd lijken, vraagt u de agent om ze opnieuw te beoordelen en opnieuw te plannen .
Aanbeveling
Voer de .github/upgrades/ map door naar uw vertakking, zodat deze behouden blijft in sessies en computers.
Taken die in uitvoering zijn vastgelopen
Oorzaak: De vorige sessie is beëindigd terwijl de agent halverwege de taak was.
Solution:
- De agent detecteert in de meeste gevallen verouderde taken automatisch. Vertel de agent 'hervatten' of 'start de huidige taak opnieuw op.'
- Als de vastgelopen status zich blijft voordoen, geeft u de agent opdracht om de huidige taak als in behandeling te markeren en deze opnieuw te starten of te herbeoordelen en door te gaan vanaf de laatste voltooide stap.
- Controleer het bijbehorende
progress-details.mdbestand om te begrijpen waar de vorige sessie is gestopt.
Agent blijft het verkeerde scenario voorstellen
Oorzaak: De analyse van de agent heeft onverwachte projectkenmerken opgehaald en een ander scenario afgeleid dan u bedoelde.
Solution:
Wees expliciet over wat u wilt. In plaats van 'mijn project bijwerken', zegt u:
- "Ik wil upgraden naar .NET 10."
- "Ik wil upgraden van Newtonsoft.Json naar System.Text.Json."
- 'Converteer mijn project naar sdk-indeling'.
Voeg scenariovoorkeuren toe aan scenario-instructions.md om toekomstige verschillen te voorkomen.
Problemen met bouwen en compileren
Deze problemen hebben betrekking op buildfouten, NuGet-herstelproblemen en fouten bij het genereren van code.
Build mislukt na wijzigingen van de agent
Oorzaak: Upgrades kunnen belangrijke API-wijzigingen, ontbrekende pakketten of incompatibele codepatronen veroorzaken.
Solution:
- Vertel de agent over de fout. De agent analyseert fouten automatisch.
- Als de agent het probleem niet kan oplossen, herstelt u de laatste doorvoering (
git revert HEAD) en vraagt u de agent een andere aanpak te proberen. - Voor complexe fouten, controleer
execution-log.mdom te begrijpen wat de agent heeft gewijzigd en in welke volgorde.
NuGet-herstel mislukt
Oorzaak: Pakketcompatibiliteit met het doelframework of verificatiefouten met privé NuGet-feeds.
Solution:
- Voor privéfeeds: Verifieer bij de feed voordat u de upgrade start.
- Voor incompatibele pakketten: Vertel de agent welk pakket problematisch is. De agent kan zoeken naar compatibele versies of alternatieve pakketten voorstellen.
-
Voor problemen met feedconnectiviteit: Controleer of u handmatig kunt uitvoeren
dotnet restore. Los eerst eventuele feedproblemen op en laat de agent het opnieuw proberen.
Agent genereert code die niet wordt gecompileerd
Oorzaak: Door AI gegenereerde code kan fouten bevatten, met name in edge-gevallen of met ongebruikelijke API-patronen.
Solution:
- De agent detecteert automatisch compilatiefouten. Als de agent moeite heeft, geeft u hulp of herstelt u de code handmatig en laat u de agent weten door te gaan.
- Als de agent na meerdere pogingen moeite heeft met een specifieke oplossing, bewerkt u de code handmatig en vertelt u de agent: 'Ik heb de compilatiefout in MyClass.cs opgelost, markeer deze taak als voltooid.'
- De agent leert van uw handmatige oplossing en past vergelijkbare patronen toe wanneer hetzelfde probleem ergens anders wordt weergegeven.
Git-problemen
Opmerking
De agent werkt ook met niet-Git-mappen. Als uw werkruimte geen Git-opslagplaats is, slaat de agent Git-bewerkingen (vertakking, doorvoeren) over en past deze wijzigingen rechtstreeks toe op uw bestanden. Maak zonder Git handmatig een back-up van uw project voordat u begint, zodat u indien nodig kunt terugkeren.
Agent kan geen branch maken
Oorzaak: Niet-doorgevoerde wijzigingen in de werkstructuur, een conflict met de naamgeving van vertakkingen of Git worden niet geïnitialiseerd in de werkruimte.
Solution:
- Voer uw in behandeling zijnde wijzigingen door of sla ze vast voordat u een scenario start.
- Controleer of Git is geïnitialiseerd door de commandoregel
git statusuit te voeren in de hoofdmap van de werkruimte. - Als er al een vertakking met de beoogde naam van de agent bestaat, verwijdert u de bestaande vertakking of vraagt u de agent om een andere vertakkingsnaam te gebruiken.
Alle agentwijzigingen ongedaan maken
Oorzaak: De upgrade is niet zoals gepland en u wilt opnieuw beginnen.
Solution:
- Ga terug naar je oorspronkelijke tak met
git checkout main(of je basistak). - De werkbranch van de agent bevat alle wijzigingen die zijn geïsoleerd van uw hoofdbranch.
- Als u de tak van de agent volledig wilt verwijderen, voert u
git branch -D <agent-branch-name>uit. - Als u bepaalde wijzigingen wilt behouden, kunt u specifieke commits cherry-picken met
git cherry-pick <commit-hash>.
Aanbeveling
De Agent maakt gedetailleerde commits per taak, zodat u selectief de wijzigingen kunt behouden die gewerkt hebben.
Prestatieproblemen
Deze problemen hebben betrekking op de upgradesnelheid en evaluatieduur.
Agent is traag of heeft veel tijd nodig
Oorzaak: Grote oplossingen met veel projecten, complexe afhankelijkheidsgrafieken of talloze belangrijke wijzigingen duren natuurlijk langer.
Solution:
Voor grote oplossingen (meer dan 50 projecten) kunt u overwegen om een upgrade uit te voeren in batches. Groepeer gerelateerde projecten en werk ze gezamenlijk bij.
Evaluatie duurt lang
Oorzaak: De evaluatie analyseert de afhankelijkheden van elk project, NuGet-pakketten, doelframeworks en toepasselijke breaking changes. Voor grote oplossingen duurt de evaluatie natuurlijk langer.
Solution:
- Lange evaluatietijden zijn normaal voor grote oplossingen. Er is geen actie nodig.
- Controleer de voortgang in het deelvenster Output (selecteer AppModernizationExtension in de vervolgkeuzelijst in Visual Studio).
- De evaluatie wordt slechts één keer per scenario uitgevoerd. In volgende fasen worden de resultaten in de cache gebruikt.
Problemen met aanpassing
Deze problemen hebben betrekking op aangepaste vaardigheden en scenario-instructiebestanden.
Aangepaste functionaliteit wordt niet herkend
Oorzaak: Het vaardigheidsbestand bevindt zich op de verkeerde locatie, heeft ontbrekende of ongeldige metagegevens of heeft een onjuiste indeling.
Solution:
- Controleer of het vaardigheidsbestand zich op een van de ondersteunde locaties bevindt:
-
.github/skills/(repository-niveau, teamwijd) -
.github/upgrades/skills/(scenarioniveau) -
%UserProfile%/.copilot/skills/(gebruikersniveau, persoonlijk)
-
- Controleer of de metagegevens van de vaardigheid ten minste
nameendescriptionvelden bevatten. - Controleer of het
discoveryveld (indien ingesteld) een van:lazy,preload, ofscenario. - Controleer of de vaardigheid
descriptionovereenkomt met het soort taak waarop u verwacht dat deze van toepassing is. De agent gebruikt beschrijvingsmatching om vaardigheden te selecteren.
Wijzigingen in scenario-instructions.md kunnen niet van kracht komen
Oorzaak: De agent kan het middengedeelte van het bestand mogelijk niet opnieuw lezen of uw bewerkingen bevinden zich in de verkeerde sectie.
Solution:
- Vraag de agent om instructies opnieuw te laden of een nieuwe chatsessie te starten om opnieuw te lezen.
- Controleer of uw bewerkingen zich in de juiste secties van het bestand bevinden:
- Gebruikersvoorkeuren: Voor algemene voorkeuren en beperkingen.
- Belangrijke beslissingen: Voor het vastleggen van belangrijke beslissingen die tijdens de upgrade zijn genomen.
- Aangepaste instructies: Voor specifieke gedragsaanpassingen.
- Controleer of het bestand is opgeslagen en in het verwachte pad:
.github/upgrades/{scenarioId}/scenario-instructions.md.
Hulp krijgen
Wanneer iets niet werkt zoals verwacht:
- Vraag het de agent: Vraag 'Wat is er misgegaan met de laatste taak?' De agent kan vaak uitleggen wat er is gebeurd en de volgende stappen voorstellen.
-
Bekijk het uitvoeringslogboek: Open
execution-log.mdin.github/upgrades/{scenarioId}/. In het logboek wordt een chronologische record weergegeven van wat de agent heeft gedaan, inclusief eventuele fouten die zijn opgetreden. - Dien een probleem in: Als u een fout hebt gevonden of de agent consequent faalt in iets, dien een probleem in bij de @modernize-dotnet GitHub-repository.