Aangepaste upgrade-instructies toepassen voor .NET upgrades

Aangepaste upgrade-instructies zijn Markdown-bestanden die GitHub Copilot modernisering begeleiden om specifieke transformaties toe te passen tijdens een upgrade. Maak deze bestanden om terugkerende wijzigingen te automatiseren, zoals het vervangen van een bibliotheek door een andere bibliotheek of het toepassen van een specifieke API-upgrade.

In dit artikel wordt uitgelegd hoe u een aangepast upgrade-instructiebestand maakt en structureerde, het afzonderlijk test en integreert in de evaluatiefase van een upgradewerkstroom.

Vereiste voorwaarden

Stel GitHub Copilot modernisering in uw ontwikkelomgeving in voordat u aangepaste instructies maakt. Zie Install GitHub Copilot modernization voor installatiestappen.

Begrijp aangepaste upgrade-instructies

GitHub Copilot modernisering haalt aangepaste upgrade-instructies op als Markdown-bestanden op aanvraag tijdens de evaluatie- en planningsfasen van een upgrade. Aangepaste upgrade-instructies verschillen van copilot-instructions.md , omdat dit het volgende is:

  • Gericht op het automatiseren van wijzigingen in code en afhankelijkheid.
  • Alleen opgehaald wanneer dit relevant is voor de huidige upgrade-evaluatie of -planning.
  • Herbruikbaar in oplossingen wanneer ze naar elke opslagplaats worden gekopieerd.

Structureer uw instructiebestanden met:

  • Een korte titel die de actie beschrijft. Bijvoorbeeld 'vervang Newtonsoft.Json door System.Text.Json'.
  • Een beknopte probleemverklaring of sectie met vereisten.
  • Expliciete staplogica ('Als X is gevonden, doet u Y'). Vermijd vage taal.
  • (Aanbevolen) Een of meer diff-voorbeelden die zijn vastgelegd op basis van werkelijke lokale bewerkingen om transformaties te begeleiden.

Naast aangepaste upgrade-instructies kunt u GitHub Copilot modernisering uitbreiden via het standaardsysteem voor vaardigheden en instructies. Vaardigheden voegen mogelijkheden toe aan de agent en instructiebestanden (zoals copilot-instructions.md) bieden globale richtlijnen.

Een aangepaste upgrade-instructie maken

Volg deze stappen om een nieuw instructiebestand te genereren en te verfijnen. Deze secties richten zich op het vervangen van Newtonsoft.Json door System.Text.Json als een voorbeeld.

  1. Klik in het venster Solution Explorer met de rechtermuisknop op de solution>Modernize.

    – of –

    Open het Copilot chatvenster en typ @Modernize om een gesprek met de agent te starten.

    Opmerking

    Deze stappen zijn van toepassing op Visual Studio. Roep in Visual Studio Code en andere omgevingen de modernize-dotnet-agent rechtstreeks aan vanuit het Copilot chatvenster. In Visual Studio heet de agent Modernize.

  2. Typ in de chat: I want to generate a custom upgrade instruction.

  3. Wanneer daarom gevraagd wordt, geef een scenario op zoals I want to replace Newtonsoft with System.Text.Json om Copilot het bestand te laten maken.

  4. Wanneer Copilot het nieuwe bestand maakt, zoals replace_newtonsoft_with_system_text_json.md, controleert u de inhoud en verfijnt u het in de chat. Vraag bijvoorbeeld Copilot om 'detectiecriteria verduidelijken' of 'een sectie met vereisten toevoegen'

    Aanbeveling

    Voeg het bestand toe aan de oplossing voor zichtbaarheid als het nog niet is opgenomen.

  5. Versterk de instructie met echte diff-voorbeelden.

    1. Breng de gewenste codewijzigingen handmatig aan in één project. Bijvoorbeeld: "verwijder het Newtonsoft.Json-pakket, werk bij met behulp van richtlijnen, en vervang JsonConvert-code door JsonSerializer."
    2. In chat, met het instructiebestand geopend, typt u: Check my git changes and add diffs as examples to my instruction file.
    3. Controleer Copilot een Git-diff heeft gebruikt en een ommuurd diff-blok of gestructureerd voorbeeld aan het Markdown-bestand hebt toegevoegd.

Tips voor het schrijven

Volg deze richtlijnen om duidelijke, effectieve aangepaste upgrade-instructies te schrijven die Copilot betrouwbaar kunnen interpreteren:

  • Duidelijke voorwaardelijke formulering gebruiken: If code references X, then do Y.
  • Eén transformatie per bestand behouden; vereisten gebruiken wanneer meerdere bestanden op volgorde moeten worden uitgevoerd.
  • Geef ten minste één concreet voorbeeld op, zoals een diff of voor/na fragment, om de nauwkeurigheid van de transformatie te verbeteren.
  • Vermijd dubbelzinnige werkwoorden zoals 'verbeteren' of 'fix'; gebruik expliciete acties zoals 'vervangen', 'verwijderen' en 'bijwerken'.

Een aangepaste upgrade-instructie testen (eenmalige uitvoering)

Voordat u de instructie uitvoert tijdens een upgrade, valideert u deze geïsoleerd. Geïsoleerde tests helpen u bij het verfijnen van detectie en het verifiëren van codewijzigingen.

  1. Klik in het venster Solution Explorer met de rechtermuisknop op de solution>Modernize.

    Opmerking

    Deze stappen zijn van toepassing op Visual Studio. Roep in Visual Studio Code en andere omgevingen de modernize-dotnet-agent rechtstreeks aan vanuit het Copilot chatvenster.

  2. Roep in de chat de instructie aan met tekst die vergelijkbaar is met de bestandsnaam. Bijvoorbeeld: replace Newtonsoft with System.Text.Json.

  3. Bevestig in het chatvenster dat Copilot het instructiebestand heeft opgehaald:

    > Getting instructions for 'replace Newtonsoft with System.Text.Json'.
    
    Perfect! I've retrieved the scenario instructions for upgrading from Newtonsoft.Json to System.Text.Json. Now I'll begin the analysis following the scenario-specific instructions.
    

    Als Copilot niet aangeeft dat de instructies zijn gevonden, probeert u het opnieuw met trefwoorden uit de naam van het bestand, zoals dezelfde combinatie van werkwoorden en zelfstandig naamwoorden.

  4. Controleer de voorgestelde wijzigingen (oplossingsverschil, doorvoeringen in behandeling of preview-wijzigingen) om te bevestigen dat de aangepaste upgrade-instructie werkt zoals verwacht.

Validatietips

Als de testuitvoering niet de verwachte resultaten oplevert, gebruikt u deze tips voor probleemoplossing om uw instructiebestand te verfijnen:

  • Als Copilot alleen pakketversies bijwerkt in plaats van het pakket te vervangen, moet u ervoor zorgen dat de instructie expliciet het oude pakket verwijdert of vervangt.
  • Gebruik consistente naamgeving zodat activering in natuurlijke taal overeenkomt. Start bijvoorbeeld de bestandsnaam met replace_ en begin uw chataanvraag met 'Vervangen ...'.
  • Voeg tijdens het testen ontbrekende codepatronen toe als voorbeelden om de dekking te verbeteren.

Aangepaste instructies toepassen tijdens een upgrade

Gebruik deze stappen om een bestaande aangepaste upgrade-instructie op te nemen in de evaluatiefase van een upgrade.

  1. Klik in het venster Solution Explorer met de rechtermuisknop op de solution>Modernize.

    Opmerking

    Deze stappen zijn van toepassing op Visual Studio. Roep in Visual Studio Code en andere omgevingen de modernize-dotnet-agent rechtstreeks aan vanuit het Copilot chatvenster.

  2. Kies in de chat Upgrade to a newer version of .NET. Beantwoord de vragen van Copilot totdat de evaluatie begint.

  3. Controleer de chat om te zien of Copilot automatisch uw aangepaste instructiebestand ophaalt tijdens de evaluatie. Zoek een bericht dat aangeeft dat het markdown-instructiebestand is geopend.

    Als Copilot de aangepaste instructies niet automatisch toepast, vraagt u deze expliciet aan. Gebruik formuleringen die vergelijkbaar zijn met de bestandsnaam. Bijvoorbeeld: use the custom instructions to replace Newtonsoft with System.Text.Json during the assessment.

  4. Wacht tot Copilot bevestigt dat het Markdown-bestand is opgehaald. Als u geen verwijzing naar het instructiebestand ziet, plaatst u de aanvraag opnieuw met behulp van de sleutelwoorden van het bestand (vervangen, bijwerken, verwijderen) en pakketnamen.

  5. Controleer het gegenereerde assessment.md bestand in de .github/upgrades map. Controleer of de evaluatie problemen en wijzigingen bevat die door uw aangepaste instructie zijn geïdentificeerd.

    Bij het vervangen van Newtonsoft identificeert de evaluatie bijvoorbeeld het volgende:

    • Projecten met Newtonsoft.Json-pakketten.
    • Codepatronen om te refactoren voor System.Text.Json.
    • Afhankelijkheden die moeten worden verwijderd of vervangen.
  6. Bewerk het assessment.md bestand indien nodig om context toe te voegen of pas de geïdentificeerde problemen aan voordat u doorgaat.

  7. Vertel Copilot om door te gaan naar de planningsfase zodra de evaluatie uw aangepaste instructie weerspiegelt.

  8. Controleer het bestand plan.md dat Copilot genereert. Dit bestand bevat strategieën voor het oplossen van de problemen van de evaluatie.

  9. Voortzetten door de uitvoeringsfase door Copilot te instrueren om verder te gaan. Bewaak het bestand tasks.md zodra Copilot de transformaties toepast.

Tips voor betere activering

Hoe u aangepaste upgrade-instructies een naam geeft en aanroept, is van invloed op de vraag of Copilot deze automatisch ophaalt. Volg deze richtlijnen om de betrouwbaarheid van de activering te verbeteren:

  • Komt overeen met het werkwoord van het bestand. Als de bestandsnaam wordt gebruikt replace, gebruikt u die formulering (niet upgrade of fix).
  • Houd één transformatie per bestand voor duidelijkheid en hergebruik. Meerdere bestanden sequentieer door de vereisten in elk bestand op te slaan.
  • Vraag aangepaste instructies aan tijdens de evaluatiefase voor de beste resultaten, in plaats van te wachten totdat de planning of uitvoering is uitgevoerd.
  • Vermijd dubbelzinnige aanvragen, zoals 'de evaluatie verbeteren'. Wees expliciet: "pas de replace_newtonsoft_with_system_text_json instructies toe tijdens de evaluatie."

De toegepaste wijzigingen valideren

Nadat de upgrade is voltooid:

  1. Controleer het tasks.md bestand in .github/upgrades om de status van taken te zien die betrekking hebben op uw aangepaste instructie.
  2. Controleer de Git-doorvoeringen die zijn gemaakt tijdens de uitvoeringsfase op wijzigingen die betrekking hebben op de aangepaste instructie.
  3. Voer uw tests uit om ervoor te zorgen dat functioneel gedrag correct blijft.
  4. Optioneel: Leg een diff-voorbeeld vast van de geslaagde wijziging en voeg het toe aan het instructiebestand om toekomstige automatisering te versterken.

De hulpbronnen opschonen

Verwijder of consolideert tijdelijke instructiebestanden om overlappende transformaties in toekomstige upgrades te voorkomen.