domande frequenti sulla modernizzazione di GitHub Copilot per C++

Queste domande frequenti rispondono alle domande comuni che gli utenti di C++ potrebbero avere sulla modernizzazione GitHub Copilot.

Generali

Che cos'è la modernizzazione di C++ con GitHub Copilot?

GitHub Copilot modernizzazione per C++ è un agente di GitHub Copilot per Visual Studio che consente di modernizzare e aggiornare progetti C++ a strumenti, librerie e modelli più recenti. Riconosce attività specifiche, ad esempio l'aggiornamento degli strumenti di compilazione MSVC alle versioni più recenti e fornisce strumenti e istruzioni aggiuntivi per eseguire tali attività. Automatizza la valutazione, la pianificazione e l'esecuzione per eseguire l'attività di modernizzazione ed è possibile eseguirla in modalità completamente automatizzata o in modalità guidata che consente di approvare ogni passaggio e fornire indicazioni aggiuntive.

Quali ambienti di sviluppo sono supportati?

La modernizzazione di C++ con GitHub Copilot è disponibile in Visual Studio 2026 versione 18.7 e versioni successive.

È necessaria una sottoscrizione GitHub Copilot?

Yes. Per usare l'agente di modernizzazione, è necessaria una sottoscrizione GitHub Copilot attiva.

Il codice viene inviato a servizi esterni?

GitHub Copilot elabora frammenti di codice secondo l'informativa sulla privacy di GitHub Copilot. Il codice non viene mantenuto oltre la sessione immediata. I file del flusso di lavoro, scenario-instructions.md ad esempio e tasks.md rimangono nel repository e non vengono trasmessi a servizi esterni.

Scenari di aggiornamento MSVC

Quali tipi di progetto sono supportati?

L'agente supporta questi tipi di progetto:

  • Progetti basati su MSBuild (.sln e .vcxproj).
  • Progetti basati su CMake.

L'agente attualmente non supporta i progetti unreal Engine (.uproject).

Cosa cambia effettivamente l'agente nel mio codice?

L'agente modifica il codice sorgente per risolvere gli errori di compilazione e gli avvisi introdotti eseguendo l'aggiornamento a una versione più recente di MSVC Build Tools. Le modifiche più comuni includono la sostituzione delle API deprecate, la correzione dei problemi causati dall'uso di un compilatore più conforme, l'aggiornamento delle direttive di inclusione per file header rimossi o spostati e la risoluzione degli errori di collegamento causati da modifiche alle librerie. Quando il progetto si trova in un repository Git, viene eseguito il commit di tutte le modifiche in modo da poter esaminare e ripristinare le singole modifiche.

È possibile controllare quali modifiche apporta l'agente?

Yes. È possibile esaminare e approvare il piano prima dell'avvio dell'esecuzione, indicare all'agente di ignorare problemi o attività specifici e fornire preferenze in scenario-instructions.md. È anche possibile sospendere l'esecuzione, reindirizzare l'agente o annullare qualsiasi commit effettuato dall'agente.

L'agente esegue i test?

L'agente convalida le modifiche compilando il progetto dopo ogni attività. Se il progetto esegue test come parte della compilazione, anche questi test vengono eseguiti. È anche possibile indicare all'agente di ignorare la convalida dei test per attività specifiche.

E se l'agente commette un errore?

Fermare l'agente e dirlo subito. Si adatterà e applicherà le correzioni quando si indica all'agente di riprendere. È anche possibile eseguire git revert HEAD, chiedere all'agente di provare un approccio diverso o apportare una correzione manuale.

Per ulteriori informazioni, vedi Risolvere i problemi di modernizzazione di GitHub Copilot per C++.

È possibile aggiornare solo una parte della soluzione?

Yes. Indica all'agente quali progetti aggiornare, ad esempio Upgrade only the CoreLib project to the latest MSVC Build Tools.. L'agente limita il proprio lavoro ai progetti specificati.

Stato e sessioni

Dove memorizza il proprio stato l'agente?

L'intero stato si trova in .github/upgrades/{SCENARIO ID} nel tuo repository. Sono inclusi la valutazione, il piano, lo stato delle attività, le preferenze e i log di esecuzione.

È possibile riprendere un aggiornamento interrotto?

Yes. È possibile chiudere Visual Studio o terminare la sessione di chat in qualsiasi momento. Quando si avvia una nuova conversazione, l'agente rileva lo stato esistente e riprende da dove era stata interrotta.

È necessario eseguire il commit della .github/upgrades cartella?

Yes. Eseguire il commit della cartella nel proprio ramo salva lo stato di avanzamento dell'aggiornamento, consente ai membri del team di visualizzare lo stato dell'aggiornamento e aiuta l'agente a riprendere dal corretto stato. È possibile rimuovere la cartella al termine dell'aggiornamento.

Più persone possono lavorare con lo stesso aggiornamento?

I file di stato in .github/upgrades sono condivisibili tramite Git. Tuttavia, solo una persona deve interagire attivamente con l'agente alla volta per evitare modifiche in conflitto.

Compatibilità

Da quali versioni di MSVC Build Tools è possibile eseguire l'aggiornamento?

L'agente supporta l'aggiornamento da qualsiasi versione precedente di MSVC Build Tools alla versione più recente supportata dall'installazione Visual Studio.

L'agente gestisce la compatibilità con librerie di terze parti?

L'agente identifica i problemi di compatibilità delle librerie di terze parti durante la valutazione. Suggerisce alternative o soluzioni alternative quando sono disponibili. Se una raccolta non è compatibile con il set di strumenti di destinazione, l'agente documenta il problema in modo da poter decidere come procedere.

È possibile utilizzare l'agente con header precompilati?

Yes. L'agente comprende le configurazioni delle intestazioni precompilate e ne tiene conto durante il processo di aggiornamento.