Metodtips för GitHub Copilot modernisering

Följ dessa riktlinjer för att få bästa resultat från GitHub Copilot modernisering när du uppgraderar .NET projekt.

Innan du börjar

Förbered dina projekt innan du påbörjar en uppgradering för att få bästa resultat.

Kontrollera att din lösning har skapats och tester har godkänts

Agenten verifierar ändringar som den gör genom att köra versioner och tester. Om lösningen redan är felaktig innan du börjar kan agenten inte skilja redan existerande fel från problem som den introducerade.

Dokumentera eventuella kända testfel i scenario-instructions.md så att agenten vet att ignorera dem.

Checka in eller spara obekräftade arbeten

Börja med en ren arbetskatalog för att undvika att blanda dina ogenomförda ändringar med agentens ändringar. En ren baslinje gör det enklare att granska eller återställa ändringar.

git stash
git status

Säkerhetskopiera icke-Git-lagringsplatser

Agenten fungerar också med mappar som inte är under källkontroll. Om projektet inte finns på en Git-lagringsplats hoppar agenten över grenoperationer och incheckningsåtgärder. I så fall säkerhetskopierar du projektmappen innan du startar så att du kan återställa den om det behövs.

Överväg att initiera en lokal Git-lagringsplats innan du påbörjar uppgraderingen, även om du inte push-överför till en molnleverantör. Med en lokal Git-lagringsplats kan du:

  • Återställ enskilda ändringar med git revert.
  • Spåra uppgraderingens förlopp steg för steg i commit-historiken.
  • Kontrollera vilka ändringar som ska behållas eller ignoreras.
  • Skydda din ursprungliga kod på huvudgrenen medan agenten fungerar på en separat gren.
cd your-project-folder
git init
git add .
git commit -m "Baseline before upgrade"

Granska testtäckningen

Agenten förlitar sig på tester för att verifiera att dess ändringar inte bryter beteendet. Uppgraderingar med högre tillförlitlighet sker i projekt med bra testtäckning.

Tips/Råd

Du behöver inte 100% täckning. Fokusera på den kod som uppgraderingen sannolikt kommer att ändra, såsom API-gränser, serialisering, databasåtkomst och autentisering.

Starta litet

Om det här är första gången du använder agenten väljer du ett litet projekt med låg risk som pilot. Ett klassbibliotek eller verktygsprojekt är idealiskt. Med liten start kan du förstå arbetsflödet, skapa förtroende och identifiera eventuella lagringsplatsspecifika problem innan du tar itu med huvudprogrammet.

Under uppgraderingen

Följ dessa riktlinjer medan agenten arbetar med uppgraderingen.

Använd guidat läge för din första uppgradering

Agenten stöder både guidade och automatiska lägen. I guidat läge pausar agenten vid viktiga beslutsplatser för granskning och godkännande. Börja med guidat läge för att förstå vad agenten gör och varför. Växla till automatiskt läge när du är bekväm med arbetsflödet.

Granska utvärderingen noggrant

Utvärderingen är din bästa möjlighet att fånga upp problem innan agenten börjar göra ändringar. Sök efter:

  • Projekt som agenten kan ha missat eller felidentifierat.
  • Beroenden som du vet är problematiska.
  • Något ovanligt med din lösning som agenten bör känna till.

Om du upptäcker något kan du berätta för agenten i chatten eller lägga till informationen i scenario-instructions.md. Redigera assessment.md direkt för att lägga till kontext, korrigera felidentifierade projekt eller flagga problem innan agenten fortsätter att planera.

Ta dig tid med planeringssteget

Agenten genererar en plan baserat på utvärderingen. Granska planen innan du fortsätter:

  • Är ordningen lämplig för din kodbas?
  • Finns det beroenden som agenten kanske inte känner till?
  • Bör alla projekt undantas eller hanteras på olika sätt?

Be agenten att ordna om uppgifter, hoppa över projekt eller ändra sin metod. Du känner till din kodbas bättre än agenten, så använd den kunskapen. plan.md Redigera filen direkt för att justera aktivitetsordningen, lägga till aktiviteter eller ta bort aktiviteter.

Försiktighet

Var försiktig när du redigerar plan.md direkt. Agenten kanske inte helt tolkar dina ändringar om de skapar motstridiga instruktioner. Du kan till exempel ta bort ett beroendeprojekt samtidigt som du behåller de projekt som är beroende av det.

Ge feedback omedelbart

Agenten lär sig av dina korrigeringar i en session. Om agenten gör ett val som du inte håller med om:

  • Säg det direkt: "Använd inte det mönstret, använd X i stället."
  • Lägg till beständiga riktlinjer till scenario-instructions.md så att agenten minns mellan aktiviteter och sessioner.

Håll dig engagerad under körningen

Utförandet är inte utan direkt inblandning. Innan du uppmanar agenten att starta läser du tasks.md:

  • Är uppgiftsordningen lämplig för din kodbas?
  • Finns det uppgifter som du vill hoppa över eller ändra ordningen på?
  • Saknas några uppgifter?

Be agenten att justera uppgiftslistan eller redigera tasks.md direkt innan körningen påbörjas. När körningen startar, om agenten gör ett felaktigt anrop mitt i uppgiften, meddela det direkt – så tillämpar den din korrigering i fortsättningen.

Du känner till din kodbas bättre än agenten, så använd den kunskapen i varje steg.

Vanliga problem

Håll utkik efter dessa vanliga problem som kan göra en uppgradering långsammare eller mer komplicerade.

Stora lösningar med över 50 projekt

Agenten arbetar projekt för projekt, så stora lösningar tar tid. Ha tålamod och övervaka förloppet. Överväg att börja med ett representativt projekt från slutpunkt till slutpunkt innan du förbinder dig till den fullständiga lösningen. Ett enskilt pilotprojekt avslöjar systemproblem tidigt.

Privata NuGet-flöden

För privata NuGet-feeds autentiserar du innan du startar uppgraderingen (till exempel via organisationens autentiseringsprovider eller feedkonfiguration). Utan autentisering blockerar paketåterställningsfel förlopp.

Anpassade MSBuild-mål och -importer

Komplexa bygganpassningar, till exempel anpassade .targets filer, villkorsstyrda importer eller icke-standardbaserad bygglogik, kan förvirra utvärderingen och orsaka oväntade byggfel. Om din lösning har dessa anpassningar nämner du dem i chatten eller i scenario-instructions.md så att agenten kan ta hänsyn till dem.

Tidsgränser för sessioner

Långvariga uppgraderingar kan sträcka sig över flera sessioner. Agenten spårar förloppet i arbetsflödesfiler (under .github/upgrades/), så att den kan fortsätta där den slutade. När du startar en ny session anger du var du var: "Fortsätt uppgraderingen .NET 10. Jag var mitt uppe i Data.Access-projektet."

Samarbeta effektivt

Kvaliteten på interaktionen påverkar resultatets kvalitet direkt.

Var specifik om omfång

Ju mer specifik du är, desto bättre fungerar agenten:

Istället för Testa
"Uppgradera allt" "Uppgradera Data.Access-projektet till .NET 10"
"Åtgärda bygget" "Åtgärda byggfelet i CustomerService.cs relaterade till det borttagna API:et"
"Uppgradera databasgrejerna" "Uppgradera Entity Framework 6 till EF Core i lagringsplatsprojektet"

Dela dina begränsningar

Berätta för agenten om verkliga begränsningar i förväg:

  • "Vi kan inte bryta bakåtkompatibiliteten för det offentliga API:et."
  • "Vi har en lanseringsfrist om två veckor, så prioritera webbprojekten."
  • "Den äldre rapporteringsmodulen bör undantas från den här uppgraderingen."

Förklara din arkitektur

Agenten analyserar kodstrukturen, men den känner inte till teamets mentala modell. Hjälp agenten att förstå:

  • "Project A är vårt delade bibliotek. B, C och D är beroende av det."
  • "WebApi-projektet är vårt offentliga API. Internal.Api är endast för interna tjänster."
  • "Modellprojektet genereras automatiskt från vår OpenAPI-specifikation. Ändra den inte direkt."

Fråga varför

Agenten kan förklara sitt resonemang. Om ett beslut inte ser rätt ut frågar du:

  • "Varför valde du ordning nedifrån och upp?"
  • "Varför uppgraderar du det här paketet till version X i stället för Y?"
  • "Varför bröt du in detta i underaktiviteter?"

Att förstå resonemanget hjälper dig att ge bättre feedback.

Spara inställningar tidigt

Om du har starka inställningar för kodningsstil, mönster eller metoder lägger du till scenario-instructions.md dem i den första sessionen. Den här filen bevaras mellan sessioner och finns alltid i agentens kontext, vilket gör den till det mest tillförlitliga sättet att påverka beteendet.

Återhämta sig från problem

Använd dessa strategier när uppgraderingen inte går som förväntat.

Fel vid kompilering efter en uppgift

Säg till agenten: "Bygget misslyckas efter den senaste aktiviteten." Agenten analyserar felet och försöker åtgärda det. Om agenten inte kan lösa problemet:

  1. Ange en manuell korrigering och berätta för agenten vad du gjorde. Agenten lär sig av din korrigering.
  2. Återgå till commiten (git revert eller återställ till föregående commit) och be agenten att prova en annan metod.
  3. Hoppa över den problematiska uppgiften och kom tillbaka till den senare.

Fel strategi har valts

Om agentens övergripande metod inte fungerar för din kodbas startar du om planeringssteget:

  • "Vi gör om planen. Jag vill uppgradera webbprojekten först i stället för nedifrån och upp."
  • "Ändra strategin för att uppgradera alla delade bibliotek i en batch."

Agenten har fastnat i en loop

Om agenten upprepar samma korrigering utan förlopp säger du "Stoppa" och beskriver vad du observerar eller stoppar sessionen manuellt. Agenten kan återställa sin metod och prova något annat.

Ångra alla ändringar

Om du använde en Git-gren för uppgraderingen ångrar du allt genom att växla tillbaka till din ursprungliga gren:

git checkout your-original-branch
git branch -D upgrade-branch

Din ursprungliga kod är orörd. Om du arbetar utan källkontroll återställer du från den säkerhetskopia du gjorde innan du startar.

Säkerhet och sekretess

  • Code-kodfragment: GitHub Copilot bearbetar dessa enligt GitHub Copilot sekretesspolicy och behåller dem inte efter den omedelbara sessionen.
  • Arbetsflödesfiler (scenario-instructions.md, anpassade uppgifter, inställningar) finns kvar på lagringsplatsen under .github/upgrades/. GitHub överför inte dessa filer till externa tjänster.
  • Mappen .github/upgrades/ är en del av lagringsplatsen. Leverera mappen eftersom den innehåller förlopp och status för uppgraderingen. Agenten behöver mappen för att återuppta arbetet mellan sessioner. Du kan ta bort den när uppgraderingen är klar.
  • Telemetri: Inaktivera via IDE:s telemetriinställningar.

Prestandatips

  • Stäng onödiga filer och flikar: Agenten analyserar den aktiva arbetsytan och färre öppna filer innebär mindre brus.
  • Uppgradera stegvis för mycket stora lösningar: I stället för att uppgradera alla projekt samtidigt kan du batcha dem. Uppgradera till exempel alla bibliotek först, sedan alla webbprojekt och sedan tester.
  • Använd kompileringscachelagring: Agenten kör många inkrementella versioner under valideringen. Varma byggcacheminnen gör valideringen betydligt snabbare. Undvik att rensa byggutdata mellan aktiviteter.