Freigeben über


„Bearbeiten und Fortfahren“ konfigurieren (C#, VB, C++)

Sie können "Hot Reload", zuvor als "Bearbeiten und Fortfahren" bezeichnet, von Visual Studio im Menü "Optionen" während der Entwurfszeit deaktivieren oder aktivieren. Hot Reload funktioniert nur in Debugbuilds. Weitere Informationen finden Sie unter Hot Reload.

Für native C++ erfordert Hot Reload die Option /INCREMENTAL. Weitere Informationen zu Featureanforderungen in C++ finden Sie in diesem Blogbeitrag und Edit and Continue (C++).

Anmerkung

Wenn IntelliTrace aktiviert ist und Sie sowohl IntelliTrace-Ereignisse als auch Anrufinformationen sammeln, ist Hot Reload deaktiviert. Weitere Informationen finden Sie unter IntelliTrace.

"Bearbeiten" und "Weiter" ist ein zeitsparendes Feature, mit dem Sie Änderungen am Quellcode vornehmen können, während sich ihr Programm im Unterbrechungsmodus befindet. Wenn Sie die Ausführung des Programms fortsetzen, indem Sie einen Ausführungsbefehl wie Continue oder Stepauswählen, wendet Edit and Continue automatisch die Codeänderungen mit einigen Einschränkungen an. Auf diese Weise können Sie während einer Debugsitzung Änderungen an Ihrem Code vornehmen, anstatt das gesamte Programm zu beenden, neu zu kompilieren und die Debugsitzung neu zu starten.

Sie können im Visual Studio-Dialogfeld Optionen die Option „Bearbeiten und Fortfahren“ zur Entwurfszeit aktivieren oder deaktivieren. Bearbeiten und Fortsetzen funktioniert nur in Debugbuilds. Weitere Informationen hierzu finden Sie unter Bearbeiten und Fortfahren.

Bei nativem C++ erfordert Bearbeiten und Fortfahren die Verwendung der /INCREMENTAL-Option. Weitere Informationen zu Featureanforderungen in C++ finden Sie in diesem Blogbeitrag und Edit and Continue (C++).

Anmerkung

Wenn IntelliTrace aktiviert ist und Sie sowohl IntelliTrace-Ereignisse als auch Anrufinformationen sammeln, ist "Bearbeiten" und "Weiter" deaktiviert. Weitere Informationen finden Sie unter IntelliTrace.

Aktivieren und Konfigurieren von Hot Reload

Sie können "Hot Reload" konfigurieren, indem Sie " Einstellungen" auf der Dropdownschaltfläche " Hot Reload " auswählen.

Screenshot der Konfiguration von Hot Reload.

Oder öffnen Sie den Bereich "Extras>Optionen ", und passen Sie die Optionen im Abschnitt "Alle Einstellungen>Debuggen.NET>/C++ Hot Reload" an. Die folgenden Optionen sind verfügbar:

  • Hot Reload aktivieren: Verwenden Sie das Feature "Hot Reload" mit .NET- und C++-Code, wenn Ihre App mit dem angefügten Debugger (F5) ausgeführt wird.

  • Automatisches Anwenden von Änderungen auf "Weiter" (nur systemintern): Visual Studio kompiliert automatisch und wendet alle ausstehenden Codeänderungen an, die Sie beim Fortsetzen des Prozesses aus einem Unterbrechungszustand vorgenommen haben. Wenn diese Option nicht ausgewählt ist, können Sie änderungen mithilfe des Elements " Codeänderungen anwenden" im Menü " Debuggen " anwenden.

  • Vor veraltetem Code warnen (nur für native Systeme): Warnungen zu veraltetem Code erhalten.

  • Aktivieren, wenn das Debuggen nicht möglich ist: Aktiviert "Hot Reload", wenn Ihre App ohne angefügten Debugger ausgeführt wird (STRG + F5).

  • Beim Speichern der Datei übernehmen: Wendet Änderungen beim Speichern der Datei an.

  • Protokollierungsgrad: Legen Sie das Protokollierungsniveau fest, wenn "Hot Reload" aktiviert ist: Minimal, Detailliert oder Diagnose.

Screenshot der Einstellungen für .NET C++ Hot Reload in Visual Studio.

Oder öffnen Sie das Dialogfeld ">", und passen Sie die Optionen im Abschnitt "Debugging.NET>/C++ Hot Reload" an. Die folgenden Optionen sind verfügbar:

  • Hot Reload aktivieren: Aktiviert hot Reload beim Starten mit dem angefügten Debugger (F5).

  • Aktivieren Des Hot Reload beim Starten ohne Debugging: Aktiviert hot Reload beim Starten ohne angefügten Debugger (STRG+F5).

  • Hot Reload beim Speichern der Datei anwenden: Wendet Codeänderungen an, wenn Sie die Datei speichern.

  • Ausführliche Protokollierung: Filtermenge an Informationen, die im Fenster "Hot Reload Output" angezeigt werden.

Screenshot der Einstellungen für .NET Hot Reload.

Für C++ können Sie zusätzliche Optionen festlegen, indem Sie tools>Options>Debugging>General öffnen. Stellen Sie sicher, dass Hot Reload aktivieren ausgewählt ist, und legen Sie die anderen Optionen fest:

  • Anwenden von Änderungen auf "Weiter" (nur systemintern): Visual Studio kompiliert automatisch und wendet alle ausstehenden Codeänderungen an, die Sie beim Fortsetzen des Prozesses aus einem Unterbrechungszustand vorgenommen haben. Wenn diese Option nicht ausgewählt ist, können Sie änderungen mithilfe des Elements " Codeänderungen anwenden" im Menü " Debuggen " anwenden.

  • Vor veraltetem Code warnen (nur für native Systeme): Warnungen zu veraltetem Code erhalten.

Bei .NET Hot Reload können Sie auch steuern, ob Hot Reload auf Projektebene verfügbar ist, indem Sie die .NET 6+-Projektdatei launchSetting.json ändern und hotReloadEnabled auf falsefestlegen.

Beispiel:

{
  "profiles": {
    "Console": {
      "commandName": "Project",
      "hotReloadEnabled": false
    }
  }
}

Aktivieren oder Deaktivieren von "Bearbeiten" und "Fortfahren"

  1. Wenn Sie sich in einer Debugsitzung befinden, beenden Sie das Debuggen (Debuggen>Debuggen beenden oder UMSCHALT+F5).

  2. Klicken Sie unter Extras>Optionen> (oder Debuggen>Optionen) >Debuggen>Allgemein im rechten Bereich auf Bearbeiten und Fortfahren.

    Anmerkung

    Wenn IntelliTrace aktiviert ist und Sie sowohl IntelliTrace-Ereignisse als auch Anrufinformationen sammeln, ist "Bearbeiten" und "Weiter" deaktiviert. Weitere Informationen finden Sie unter IntelliTrace.

  3. Stellen Sie bei C++-Code sicher, dass Natives Bearbeiten und Fortfahren aktivieren ausgewählt ist, und legen Sie die weiteren Optionen fest:

    • Anwenden von Änderungen auf "Weiter" (nur systemintern): Visual Studio kompiliert automatisch und wendet alle ausstehenden Codeänderungen an, die Sie beim Fortsetzen des Prozesses aus einem Unterbrechungszustand vorgenommen haben. Wenn diese Option nicht ausgewählt ist, können Sie änderungen mithilfe des Elements " Codeänderungen anwenden" im Menü " Debuggen " anwenden.

    • Vor veraltetem Code warnen (nur für native Systeme): Warnungen zu veraltetem Code erhalten.

  4. Wählen Sie OKaus.

Konfigurieren des automatischen Neustarts

Hot Reload kann den Prozess der App automatisch neu starten, wenn eine nicht unterstützte Änderung (auch als unhöfliche Bearbeitung bezeichnet) vorgenommen wird, anstatt die gesamte Debugsitzung zu beenden. Bearbeiten Sie dazu die Projektdatei, um die folgende Eigenschaftendeklaration hinzuzufügen.

<PropertyGroup>
  <HotReloadAutoRestart>true</HotReloadAutoRestart>
</PropertyGroup>

Sie können diese Eigenschaft auch in einer Datei "Directory.Build.props" festlegen. Der automatische Neustart funktioniert für Projekttypen, bei denen ein schneller Prozessneustart möglich ist (z. B. einige Aspire- oder Webprojekte), sodass Sie das Debuggen mit minimalen Unterbrechungen fortsetzen können.

Dies ist ein prozessbasierter Neustart. Wenn Sie beispielsweise mehrere Projekte debuggen, werden nur die geänderten Projekte und alle abhängigen Projekte neu erstellt und neu gestartet.

Konfigurieren von Hot Reload für Razor

Durch die Kohosting des Razor Compilers innerhalb des Roslyn-Prozesses ist die Bearbeitung einer RAZOR-Datei während des Hot Reload schneller und effizienter. Cohosting verbessert auch die Gesamtsicherheit bei Der Verwendung von Hot Reload.

Um das Kohosting zu aktivieren, wählen Sie "Extras Optionen" aus und suchen Sie dann nach . Wählen Sie die Einstellung "Roslyn Cohost-Server für Razor verwenden" aus oder deaktivieren Sie sie (erfordert einen Neustart). Wenn Sie diese Option aktivieren, starten Sie Visual Studio neu. Cohosting ist standardmäßig aktiviert.

Anhalten von Codeänderungen

Während sich Hot Reload im Prozess des Anwendens von Codeänderungen befindet, können Sie den Vorgang beenden.

Während "Edit and Continue" die Codeänderungen anwendet, können Sie den Vorgang beenden.

Vorsicht

Das Beenden von Codeänderungen in verwaltetem Code kann zu unerwarteten Ergebnissen führen. Das Anwenden von Änderungen auf verwalteten Code ist normalerweise ein schneller Prozess, sodass es selten erforderlich ist, Codeänderungen in verwaltetem Code zu beenden.

So beenden Sie die Anwendung von Codeänderungen:

  • Klicken Sie im Menü Debuggen auf Übernehmen von Codeänderungen beenden.

    Dieses Menüelement ist nur sichtbar, wenn Codeänderungen angewendet werden.

    Wenn Sie diese Option auswählen, werden keine Codeänderungen übernommen.