Referenz zu Szenarien und Fähigkeiten

GitHub Copilot Modernisierungs-Agent stellt verwaltete, end-to-End-Modernisierungsworkflows bereit, die als scenarios bezeichnet werden. Jedes Szenario führt Sie durch eine bestimmte Art von Aktivität in praktischen C++-Modernisierungsarbeiten. Auf dieser Seite werden die verfügbaren Szenarien und Fähigkeiten dokumentiert, damit Sie verstehen können, was der Agent für Ihr Projekt tun kann.

Szenarien

Ein Szenario ist ein verwalteter Workflow, der Sie durch eine bestimmte Art von Modernisierungsaktivität führt.

Wie Szenarien ermittelt werden

Sie müssen sich keine Szenarionamen merken. Der Agent erkennt Ihren Projekttyp und schlägt das entsprechende Szenario automatisch vor.

Um die vom Agent unterstützten Szenarien auflisten zu können, fragen Sie "Welche Szenarien sind für mein Projekt verfügbar?" im GitHub Copilot-Chatfenster.

Verfügbare Szenarien

Szenario Projekttyp Beschreibung Beispielaufforderung
MSVC Build Tools-Upgrade (MSBuild) .sln, .vcxproj Aktualisiert MSBuild-basierte Projekte (.sln, .vcxproj) auf eine neuere Version von MSVC Build Tools und behebt Upgrade-bezogene Buildprobleme. "Aktualisieren sie meine Projekte, um die neueste installierte Version der MSVC-Buildtools zu verwenden"
UPGRADE der MSVC-Buildtools (CMake) CMake Behebt Upgrade-bezogene Buildprobleme in Ihren CMake-basierten Projekten, nachdem das Projekt mit einer neueren Version von MSVC Build Tools konfiguriert wurde. "Beheben sie alle Buildprobleme, die durch ein Upgrade meines Projekts verursacht werden, um die neueren MSVC-Buildtools zu verwenden"

Note

Wenn Sie andere Modernisierungsszenarien vorschlagen oder aufrufen möchten, besuchen Sie Entwicklercommunity.

MSVC Build Tools-Upgrade (MSBuild)

In diesem Szenario wird der vollständige Upgradeworkflow für MSBuild-basierte C++-Projekte behandelt:

  1. Retargeting: Aktualisiert die Projekteinstellungen so, dass es auf das neueste, installierte MSVC Build Tools and Platform Toolset ausgerichtet ist.
  2. Buildanalyse: Erstellt die Lösung und katalogisiert alle Fehler und Warnungen, die durch das Upgrade eingeführt wurden.
  3. Aktualisieren von Code: Ersetzt veraltete APIs, behebt Konformitätsprobleme und hilft bei der Unterbrechung von Änderungen.
  4. Überprüfung: Neuerstellen, um zu bestätigen, dass alle Probleme behoben wurden.

In diesem Szenario werden beispielsweise Probleme wie:

  • Veraltete CRT-Funktionen, z. B sprintf . an sprintf_s.
  • C++-Konformitätsänderungen, z. B. strengere Vorlagenanalyse.
  • Standardbibliotheksänderungen zwischen MSVC-Versionen, z. B. entfernten, experimentellen Namespaces (z. B. std::tr1).
  • Warnungs-als-Fehler-Aktionen in neueren Toolsets.
  • Linkerfehler für APIs, die aus dem Windows SDK entfernt wurden.

UPGRADE der MSVC-Buildtools (CMake)

In diesem Szenario werden Upgradeworkflows für CMake-basierte C++-Projekte behandelt:

  1. Buildanalyse: Erstellt das Projekt und katalogisiert alle Fehler und Warnungen, die durch das Upgrade eingeführt wurden.
  2. Aktualisieren von Code: Ersetzt veraltete APIs, behebt Konformitätsprobleme und hilft bei der Unterbrechung von Änderungen.
  3. Überprüfung: Neuerstellen, um zu bestätigen, dass alle Probleme behoben wurden.

In diesem Szenario werden beispielsweise Probleme wie:

  • Veraltete CRT-Funktionen, z. B sprintf . an sprintf_s.
  • C++-Konformitätsänderungen, z. B. strengere Vorlagenanalyse.
  • Standardbibliotheksänderungen zwischen MSVC-Versionen, z. B. entfernten, experimentellen Namespaces (z. B. std::tr1).
  • Warnungs-als-Fehler-Aktionen in neueren Toolsets.
  • Linkerfehler für APIs, die aus dem Windows SDK entfernt wurden.

Szenariopersistenz

Jedes aktive Szenario erhält einen eigenen Ordner unter .github/upgrades/{scenarioId}. Der Szenarioordner enthält den Plan, den Vorgangsfortschritt, Ihre Einstellungen und Ausführungsprotokolle. Der Ordner wird Teil Ihres Git-Repositorys.

Fähigkeiten

Fähigkeiten sind kleinere, gezielte Modernisierungsfunktionen, die der Agent innerhalb eines Szenarios verwendet. Wenn der Agent während eines Upgrades auf ein bestimmtes Muster trifft, lädt er die relevante Fähigkeit mit detaillierten Anweisungen.

Fähigkeiten werden automatisch geladen, basierend auf dem, was der Agent in Ihrer Codebasis erkennt. Sie müssen das Laden von Skills nicht verwalten.

Note

Es gibt derzeit keine zusätzlichen Fähigkeiten, die für C++-Modernisierungsszenarien spezifisch sind.