Freigeben über


Konfigurieren von Hot Reload (C#, VB, C++)

Sie können Hot Reload (zuvor als "Bearbeiten und Fortfahren" bezeichnet) während der Entwurfszeit im Visual Studio-Menü Tools>Options deaktivieren oder aktivieren. Hot Reload funktioniert nur in Debugbuilds. Weitere Informationen finden Sie unter Hot Reload.

Für nativen 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.

Aktivieren und Konfigurieren von Hot Reload

Sie können Hot Reload konfigurieren, indem Sie Settings aus der Dropdownschaltfläche Hot Reload auswählen.

Screenshot zum Konfigurieren von Hot Reload.

Oder öffnen Sie den Bereich Tools>Options, und passen Sie die Optionen im All Settings an.>Debugging>.NET/C++ Hot Reload Abschnitt. Die folgenden Optionen sind verfügbar:

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

  • Änderungen automatisch auf "Continue" anwenden (nur nativ): Visual Studio kompiliert und wendet automatisch 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 nicht im Debugging: Aktiviert Hot Reload, wenn Ihre App ohne angehängten Debugger ausgeführt wird (Strg + F5).

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

  • Logging verbosity: Legen Sie die Protokollierungsebene fest, wenn Hot Reload aktiviert ist: Minimal, Detailed oder Diagnostic.

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

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

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

  • Enable Hot Reload beim Starten ohne Debugging: Aktiviert Hot Reload beim Starten ohne angeschlossenen Debugger (Strg+F5).

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

  • Logging-Verbosity: Filtert die Menge an Informationen, die im Hot Reload-Ausgabefenster 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 Enable Hot Reload ausgewählt ist, und legen Sie die anderen Optionen fest:

  • Apply-Änderungen beim Fortsetzen (nur systemeigene): 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.

Für .NET Hot Reload können Sie auch steuern, ob Hot Reload auf Projektebene verfügbar ist, indem Sie die .NET 6+-Projektdatei launchSettings.json ändern und hotReloadEnabled auf false festlegen.

Beispiel:

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

Konfigurieren des automatischen Neustarts

Hot Reload können 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 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.

Informationen zur Problembehandlung finden Sie unter Write und Debuggen von ausgeführtem Code mit Hot Reload in Visual Studio.

Anhalten von Codeänderungen

Während sich Hot Reload im Prozess der Anwendung von Codeänderungen befindet, 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.