Použít vlastní instrukce pro upgradování .NET

Vlastní pokyny k upgradu jsou soubory Markdown, které řídí modernizaci GitHub Copilot k použití konkrétních transformací během upgradu. Vytvořte tyto soubory pro automatizaci opakovaných změn, například nahrazení jedné knihovny jinou nebo použití konkrétního upgradu rozhraní API.

Tento článek vysvětluje, jak vytvořit a strukturovat vlastní instrukční soubor upgradu, otestovat ho izolovaně a integrovat ho do fáze posouzení pracovního postupu upgradu.

Požadavky

Před vytvořením vlastních pokynů nastavte GitHub Copilot ve vašem vývojovém prostředí pro jeho modernizaci. Postup instalace najdete v části Modernizace GitHub Copilot.

Pochopit vlastní pokyny k upgradu

Modernizace GitHub Copilot načte vlastní instrukce pro upgrady jako soubory typu Markdown na vyžádání během fází posouzení a plánování upgradu. Vlastní pokyny k upgradu se liší od copilot-instructions.md tím, že:

  • Cílem je automatizovat změny kódu a závislostí.
  • Načteno pouze v případech, kdy je relevantní pro aktuální posouzení upgradu nebo plán.
  • Opakovaně použitelné napříč řešeními při kopírování do každého úložiště.

Strukturujte své instrukční soubory pomocí:

  • Krátký název popisující akci. Například "replace Newtonsoft.Json with System.Text.Json" (Nahradit Newtonsoft.Json za System.Text.Json).
  • Stručné shrnutí problému nebo sekce s předpoklady.
  • Jasná logika kroku ("Pokud se najde X, proveď Y"). Vyhněte se vágnímu jazyku.
  • (Doporučeno) Jeden nebo více příkladů rozdílů zachycených ze skutečných místních úprav, aby se usnadnila transformace.

Kromě vlastních pokynů k upgradu můžete modernizaci GitHub Copilot rozšířit prostřednictvím standardního systému dovedností a pokynů. Dovednosti přidávají agentovi schopnosti, a instrukční soubory (například copilot-instructions.md) poskytují globální orientaci.

Vytvořit vlastní pokyny pro upgrade

Pomocí těchto kroků vygenerujte a upřesněte nový instrukční soubor. Tyto části se zaměřují na nahrazení Newtonsoft.Json s System.Text.Json jako příkladu.

Zahajte aktualizaci

Pokud chcete spustit upgrade, postupujte následovně:

  1. Spusťte agenta některou z těchto metod:

    • Visual Studio: Klikněte pravým tlačítkem na řešení nebo projekt v Průzkumník řešení a vyberte Modernize. Případně otevřete okno Copilot Chat GitHubu a zadejte @Modernize.
    • Visual Studio Code: Otevřete panel GitHub Copilot Chat a zadejte @modernize-dotnet.
    • GitHub Copilot CLI: Zadejte @upgrade a potom požadavek na upgrade nebo migraci.
    • GitHub aplikace Copilot: Ve výběru agenta vyberte Upgrade.
  2. Sdělete agentovi, co chcete upgradovat nebo migrovat.

Vytvoření instrukčního souboru

  1. Do chatu zadejte: I want to generate a custom upgrade instruction.

  2. Po zobrazení výzvy zadejte scénář, jako je I want to replace Newtonsoft with System.Text.Json, aby Copilot soubor vytvořil.

  3. Když Copilot vytvoří nový soubor, například replace_newtonsoft_with_system_text_json.md, zkontrolujte obsah a zpřesněte ho v chatu. Například požádejte Copilot, aby "objasnil kritéria detekce" nebo "přidal sekci požadavků."

    Návod

    Pokud soubor ještě není zahrnutý, přidejte ho do řešení pro viditelnost.

  4. Posílit instrukce skutečnými příklady rozdílů.

    1. Proveďte požadované změny kódu ručně v jednom projektu. Například "odeberte Newtonsoft.Json balíček, aktualizujte direktivy using a nahraďte JsonConvert kód "JsonSerializer
    2. V chatu s otevřeným souborem s pokyny zadejte: Check my git changes and add diffs as examples to my instruction file.
    3. Ověřte, zda Copilot použil git diff a přidal k souboru ve formátu Markdown ohraničený blok diff nebo strukturovaný příklad.

Tipy pro vytváření obsahu

Pokud chcete napsat jasné a efektivní pokyny k vlastnímu upgradu, které Copilot může spolehlivě interpretovat:

  • Používejte jasné podmíněné formulace: If code references X, then do Y.
  • Zachovejte jednu transformaci na soubor; použijte předpoklady, když se musí více souborů spouštět v pořadí.
  • Uveďte alespoň jeden konkrétní příklad, například rozdíl nebo před nebo po fragmentu kódu, abyste zlepšili přesnost transformace.
  • Vyhněte se nejednoznačným slovesům, jako je "zlepšení" nebo "oprava"; použijte explicitní akce, jako je "nahradit", "odebrat" a "aktualizovat".

Testování vlastní instrukce upgradu (jednorázové spuštění)

Před spuštěním instrukce během upgradu ji ověřte izolovaně. Izolované testování pomáhá upřesnit detekci a ověřit změny kódu.

Zahajte aktualizaci

Pokud chcete spustit upgrade, postupujte následovně:

  1. Spusťte agenta některou z těchto metod:

    • Visual Studio: Klikněte pravým tlačítkem na řešení nebo projekt v Průzkumník řešení a vyberte Modernize. Případně otevřete okno Copilot Chat GitHubu a zadejte @Modernize.
    • Visual Studio Code: Otevřete panel GitHub Copilot Chat a zadejte @modernize-dotnet.
    • GitHub Copilot CLI: Zadejte @upgrade a potom požadavek na upgrade nebo migraci.
    • GitHub aplikace Copilot: Ve výběru agenta vyberte Upgrade.
  2. Sdělete agentovi, co chcete upgradovat nebo migrovat.

Otestování instrukce upgradu

  1. V chatu vyvoláte instrukci s formulací podobnou názvu souboru. Například: replace Newtonsoft with System.Text.Json.

  2. Potvrďte v okně chatu, že Copilot načetl instrukční soubor:

    > 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.
    

    Pokud Copilot nenaznačí, že se pokyny nenašly, zkuste to znovu s klíčovými slovy z názvu souboru, například se stejnými kombinacemi sloves a podstatných jmen.

  3. Zkontrolujte navržené změny (rozdíly v řešení, čekající na potvrzení nebo náhledy změn) a ověřte, že se instrukce upgradu chová dle očekávání.

Tipy pro ověření

Pokud testovací běh nevygeneruje očekávané výsledky, pomocí těchto tipů pro řešení potíží upřesněte svůj instrukční soubor:

  • Pokud Copilot aktualizuje pouze verze balíčků místo jejich nahrazení, ujistěte se, že instrukce explicitně uvádějí, aby byl starý balíček odstraněn nebo nahrazen.
  • Používejte konzistentní pojmenování tak, aby aktivace přirozeného jazyka odpovídala. Například začněte název souboru s replace_ a začněte žádost o chat s "Nahradit...".
  • Během testování přidejte všechny chybějící vzory kódu jako příklady pro zlepšení pokrytí.

Aplikace vlastních pokynů během upgradu

Pomocí těchto kroků začleníte existující vlastní instrukci upgradu do fáze posouzení upgradu.

Zahajte aktualizaci

Pokud chcete spustit upgrade, postupujte takto:

  1. Spusťte agenta některou z těchto metod:

    • Visual Studio: Klikněte pravým tlačítkem na řešení nebo projekt v Průzkumník řešení a vyberte Modernize. Případně otevřete okno Copilot Chat GitHubu a zadejte @Modernize.
    • Visual Studio Code: Otevřete panel GitHub Copilot Chat a zadejte @modernize-dotnet.
    • GitHub Copilot CLI: Zadejte @upgrade a potom požadavek na upgrade nebo migraci.
    • GitHub aplikace Copilot: Ve výběru agenta vyberte Upgrade.
  2. Sdělete agentovi, co chcete upgradovat nebo migrovat.

Přizpůsobte aktualizaci

Během fáze posouzení postupujte takto:

  1. Sledujte chat, abyste zjistili, jestli Copilot během posouzení automaticky načítá váš vlastní instrukční soubor. Vyhledejte zprávu, která indikuje otevření instrukčního souboru Markdownu.

    Pokud Copilot automaticky nepoužije vlastní pokyny, výslovně je o ně požádejte. Použijte formulaci podobnou názvu souboru. Například: use the custom instructions to replace Newtonsoft with System.Text.Json during the assessment.

  2. Počkejte, až Copilot potvrdí načtení souboru ve formátu Markdown. Pokud se nezobrazuje odkaz na instrukční soubor, přeměňte požadavek pomocí příkazů klíče souboru (nahrazení, aktualizace, odebrání) a názvů balíčků.

  3. Zkontrolujte vygenerovaný assessment.md soubor ve .github/upgrades složce. Ověřte, že posouzení obsahuje problémy a změny, které vaše vlastní instrukce identifikovala.

    Například při nahrazení Newtonsoftu posouzení identifikuje:

    • Projekty využívající Newtonsoft.Json balíčky
    • Vzory kódu, které se mají refaktorovat pro System.Text.Json.
    • Závislosti, které je třeba odstranit nebo nahradit
  4. V případě potřeby upravte assessment.md soubor a přidejte kontext nebo před pokračováním upravte zjištěné problémy.

  5. Informujte Copilot, aby po vyhodnocení pokračoval v plánovací fázi, jakmile posouzení zohledňuje vaše vlastní pokyny.

  6. Zkontrolujte soubor plan.md, který Copilot generuje. Tento soubor obsahuje strategie pro řešení problémů z posouzení.

  7. Pokračujte ve fázi provádění tím, že řeknete Copilotovi, aby pokračoval. Monitorujte soubor tasks.md, když Copilot aplikuje transformace.

Tipy pro lepší aktivaci

Jak pojmenujete a vyvoláte vlastní pokyny k upgradu, ovlivní to, jestli je Copilot načte automaticky. Pokud chcete zvýšit spolehlivost aktivace, postupujte podle těchto pokynů:

  • Porovnej sloveso souboru. Pokud název souboru používá replace, použijte tuto formulaci (ne upgrade nebo fix).
  • Zachovejte jednu transformaci na soubor, abyste měli přehlednost a znovu je používali. Sekvencujte více souborů výpisem požadavků v každém souboru.
  • Pokud chcete dosáhnout nejlepších výsledků, vyžádejte si vlastní pokyny během fáze posouzení, a nečekejte na plánování nebo spuštění.
  • Vyhněte se nejednoznačným požadavkům, jako je například "zlepšení hodnocení". Buďte explicitní: "Použití replace_newtonsoft_with_system_text_json pokynů během hodnocení".

Ověření použitých změn

Po dokončení upgradu:

  1. Zkontrolujte soubor tasks.md v .github/upgrades pro zjištění stavu úkolů souvisejících s vaším vlastním pokynem.
  2. Zkontrolujte potvrzení Gitu vytvořená během fáze provádění, kde najdete změny související s vlastní instrukcí.
  3. Spusťte testy, abyste zajistili správnost funkčního chování.
  4. Volitelné: Zachyťte příklad rozdílu od úspěšné změny a přidejte ho do instrukčního souboru, abyste posílili budoucí automatizaci.

Vyčistěte zdroje

Odeberte nebo konsolidujte všechny dočasné instrukční soubory, abyste se vyhnuli překrývání transformací v budoucích upgradech.