Hot Reload

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von tron25.

    Hallo,
    ich habe folgendes Problem:
    Ich markiere eine Zeile als Haltepunkt. Wenn ich das Programm starte, wird es auch bis dorthin ausgeführt. Nun ändere ich etwas am Code und möchte, dass das Programm mit den Änderungen weiterläuft. Allerdings bekomme ich jetz eine Meldung "Hot Reload", dass das Programm mit den Änderungen nicht fortgesetzt werden kann. Allerdings könnte das Programm mit den Änderungen neu gestartet werden.
    Das ist ziemlich nervend, weil ich jedesmal die Arbeitsschritte wiederholen muß, um zum Haltepunkt zu gelangen.
    Gibt es da eine Einstellung, die das verursacht oder muß ich damit leben?
    Hat jemand von euch das gleiche Problem oder weiß er sogar eine Lösung?
    @tron25 Wenn Du Code in einer "normalen" Prozedur änderst, sollte das ohne Probleme gehen.
    In einem Catch-Block gibt es Probleme, in Thread-Prozeduren gibt es Probleme (unvollständige Auflistung).
    In was für einer Prozedur liegt der Haltepunkt?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Es spielt keine Rolle. Egal, wo ich etwas ändere - Das Programm möchte danach immer neu starten.

    Beispiel:

    VB.NET-Quellcode

    1. Public Sub AbbrechenMenue_Click(sender As Object, e As EventArgs) Handles AbbrechenMenue.Click
    2. MenuePunkteDeaktivieren()
    3. 'Wenn das Punktbild angezeigt wird.
    4. If PunktbildAnzeigenMenue.Checked Then
    5. FreiesZeichnenMenue.Checked = True
    6. 'Das Array für das Fokusrechteck wird neu erzeugt.
    7. ReDim FokusArray(Fokus.ArrayBreite - 1, Fokus.ArrayHoehe - 1)
    8. End If
    9. 'Wenn das Originalbild angezeigt wird.
    10. If OriginalbildAnzeigenMenue.Checked Then
    11. BildLadenMenue.Checked = False
    12. BildAnpassenMenue.Enabled = False
    13. End If
    14. 'Die Grafik wird neu gezeichnet.
    15. GrafikAufbauen()
    16. End Sub
    @tron25

    VB.NET-Quellcode

    1. ReDim FokusArray(Fokus.Width - 1, Fokus.Height - 1)
    geändert nach

    VB.NET-Quellcode

    1. ReDim FokusArray(Fokus.Width - 1, Fokus.Height - 10)
    funktioniert bei mir im Debug-Break problemlos.
    Was ist bei Dir anders?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo -Franky-,
    ich habe mir den Artikel durchgelesen und es so verstanden, das "Hot Reload" genau das tun soll, was ich möchte. Also, zu viele Programmneustarts vermeiden und Änderungen gleich anzuwenden. Allerdings funktioniert es nicht so bei mir. Ich hänge mal einen Screenshot von dem besagten Fenster an.

    -----

    Ich habe versucht, die entsprechende Einstellung zu finden - leider erfolglos. Gibt es einen Weg, die Standardeinstellungen wiederherzustellen?
    Bilder
    • Screenshot (1).png

      131,36 kB, 1.920×1.080, 44 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „tron25“ ()

    hmm - also mir ist auch noch nie gelungen: während eines Testlaufs Code zu ändern, und Proggi soll dann weiterlaufen.
    Ich glaub auch nicht, dass das geht.
    Stattdessen treibe ich manchmal einigen Aufwand, dass meine Anwendung bereits beim Startup allerlei Schritte durchläuft, die zu der Stelle führen, die ich grad an Entwickeln bin.
    Dieses Hundertmal dieselbe Klick-Strecke absolvieren geht mir auch auf den Senkel.

    ErfinderDesRades schrieb:

    Dieses Hundertmal dieselbe Klick-Strecke absolvieren geht mir auch auf den Senkel.


    Nimm einen Macro recorder und spiel das dann ab. Nutze ich auch für eine gewisse Strecke, klicke dann selbst weiter.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    ErfinderDesRades schrieb:

    während eines Testlaufs Code zu ändern, und Proggi soll dann weiterlaufen.
    Das mach ich permanent.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo,

    den Hot Reload brauchst Du ja eigentlich nicht bei einem Haltepunkt, wenn der Debugger dort stoppt.
    Dann machst Du deine Änderungen und das wird direkt übernommen.

    Den Hot Reload Button brauchst Du nur wenn Du am Code Änderungen vornimmst ohne das der Debugger an einer definierten Stelle gestoppt wird.
    Bei mir klappt der HR inzwischen sehr gut.

    Was für eine VS Version hast Du installiert?
    Visual Studio Community 2022
    Verstehe ich das richtig, das Hot Reload dafür sorgen soll, im laufenden Betrieb Dinge ändern zu können, ohne das das Programm dafür an einem Haltepunkt pausieren soll?
    Wenn ja, brauche ich das nicht. Ich möchte, das das Programm an einem Haltepunkt stoppt, ich dann gegebenenfalls einen Wert ändern kann und dass das Programm mit dem neuen Wert weiterläuft.
    In dem Beitrag steht, dass man während des Ausführens die Tastenkombination Shift+F5 drücken soll. Bei mir wird das Programm beendet und gleich neu gestartet. Allerdings habe ich in den Projekteigenschaften unterhalb von "Debuggen" die Checkbox "Debuggen von nativem Code aktivieren" ausgeschaltet. Jetzt scheint es so zu funktionieren, wie ich es wollte.

    Vielen Dank