Wie aktiviere ich die Dateibearbeitung im Debug-Modus von Visual Studio?


144

Gibt es eine Möglichkeit, die Dateibearbeitung beim Debuggen in Visual Studio zu aktivieren? Ich habe das Kontrollkästchen "Quelldatei muss genau mit der Originalversion übereinstimmen" deaktiviert. Es macht keinen Unterschied. Ich muss das Debuggen beenden, um Dateien zu bearbeiten. Sehr nervig. Ich habe Bearbeiten und Fortfahren aktiviert. Gleiches Ergebnis. Ich habe Bearbeiten und Fortfahren deaktiviert - Gleiches Ergebnis.


Ich habe nicht gesehen, dass Sie Ihre Frage bearbeitet haben. Sie können dies durch eine schnelle Neuinstallation beheben.
Secko

12
@Secko Es gibt keine "schnelle Neuinstallation", wenn wir über Visual Studio sprechen ...
Zero3

@ Zero3 Es gab zu meiner Zeit vor ungefähr 16 Jahren, als ich es um (int) 1999 - (int) 2000 benutzte. Ich habe es seit (langer) * Zeit nicht mehr benutzt.
Secko

Das eigentliche Problem hierbei ist, dass Sie mit der Einstellung "Bearbeiten und Fortfahren" von Visual Studio nicht bearbeiten und fortfahren können . Vielmehr handelt es sich um eine seltsame Funktion, mit der Sie Code bearbeiten und dann den ausführenden Code entsprechend Ihrer Bearbeitung ändern und von dort aus debuggen können. Selbst wenn das nützlich wäre, funktioniert es selten. Es hätte so etwas wie "Bearbeiten und Neukompilieren im laufenden Betrieb" heißen sollen. Durch Ausschalten können Sie Ihren Code tatsächlich bearbeiten, während Sie den kompilierten Code weiterhin debuggen.
MGOwen

Antworten:


234

Soweit ich weiß, können Sie das Kontrollkästchen "Bearbeiten und fortfahren" deaktivieren.

Extras -> Optionen -> Debuggen -> Bearbeiten und fortfahren> Bearbeiten und fortfahren aktivieren (deaktivieren)


60
Dies war die Lösung für mich - ich habe keine Ahnung, warum das UN-Aktivieren von "Bearbeiten und Fortfahren" das Bearbeiten ermöglichen würde ... scheint nicht intuitiv zu sein. Jedenfalls würde ich dies als Antwort markieren.
Sam Schutte

7
Kontraintuitiv und dennoch effektiv.
Milne

2
Dies reagiert anders, wenn die Geschäftsschicht innerhalb der Lösung in ein separates Projekt aufgeteilt wird. Bevor es aufgeteilt wurde, konnte ich Klassen beim Debuggen problemlos bearbeiten. Leider hat sich diese Lösung für mich in dieser Situation nicht gelöst (verwende VS2013)
Radderz

18
In Visual Studio 2015 habe ich diese Einstellung unten in Debugging-> gefunden General.
Zero3

13
Wenn Sie dies versuchen, aber "Bearbeiten und Fortfahren aktivieren" ausgegraut ist, beenden Sie einfach das Debuggen und kehren Sie zu den Optionen zurück.
Ravvy

19

Erweitern Sie Reeds richtige Antwort.

Im Debug-Modus verwendet eine Datei eine Funktion, die als Bearbeiten und Fortfahren (allgemein als ENC abgekürzt) bezeichnet wird. Auf diese Weise können Benutzer ihr Programm ändern, während es im Debugger ausgeführt wird.

Wenn ENC aktiviert ist, können Benutzer eine begrenzte Anzahl von Änderungen an ihrer Datei vornehmen. Die nächste Aktion, die die Ausführung des Programms fortsetzt (F10, F5 usw.), bewirkt, dass die Änderungen auf das laufende Programm angewendet werden. Wenn dies erfolgreich ist, wird die Ausführung des Programms mit dem neu angewendeten Code fortgesetzt.

Der Debugger erlaubt keine Änderungen an der Datei, wenn ENC nicht aktiviert ist.

Es gibt einige Gründe, warum ENC auf Ihrem Computer möglicherweise deaktiviert ist

  • Bestimmte Profile aktivieren ENC standardmäßig nicht und müssen explizit aktiviert werden
  • Möglicherweise laufen Sie unter einem 64-Bit-Betriebssystem und haben Ihre .NET-App auf "Beliebige CPU" eingestellt. ENC ist für 64-Bit nicht verfügbar (CLR-Einschränkung). Sie müssen die App auf x86 zurücksetzen, damit ENC funktioniert

8
Was ist, wenn Sie sich nicht für Bearbeiten und Fortfahren interessieren und nur codieren möchten, während die App ausgeführt wird, damit Sie sehen können, was währenddessen getan werden muss? Es ist absolut unwirklich, dass VS diese künstliche Einschränkung auferlegen würde. Es ist nicht so, dass es die Quelldateien lesen muss, während es ausgeführt wird. Es gibt keinen technischen Grund, warum die Quelldateien gesperrt werden müssen. Mit Xcode können Sie problemlos codieren, während die App ausgeführt wird. Die Änderungen gelten erst beim nächsten Durchlauf. Gibt es wirklich keine Möglichkeit, dies in VS zu tun?
Devios1

1
Wenn ich Bearbeiten und Fortfahren deaktiviere , kann ich CS-Dateien bearbeiten, während die App ausgeführt wird, aber .xaml-Dateien werden weiterhin gesperrt. Ich suche nach einer Möglichkeit, diese absurde Sperre vollständig zu deaktivieren.
Devios1

7
Ich kann dem Projekt nicht einmal eine Datei hinzufügen, während die App ausgeführt wird! Ich mache dir nichts vor, 20-30 mal am Tag versuche ich etwas zu tun und VS verhindert es vollständig. Nach einem kurzen "wtf" -Moment stelle ich fest, dass die App debuggt und ich muss aufhören, was ich getan habe, die App beenden und sie dann erneut versuchen. Ich kann unter diesen Bedingungen nicht arbeiten und bin wirklich erstaunt, dass die Leute darüber nicht in den Armen sind. Dies bringt meine Produktivität wirklich zum Erliegen und treibt mich an die Wand. Es muss einen Weg geben, dies zu beheben!
Devios1

1
@ devios1 Was ich oft mache, ist einfach ohne Debugging (Strg + F5) zu laufen, was in Ordnung ist, solange Sie keine Haltepunkte oder ähnliches benötigen.
Binki

@ devios1 Gleich. Ich hoffe, dass jemand (vielleicht ich) die Zeit findet, diese Erweiterung fertigzustellen. github.com/AndreasFurster/pause-edit-and-continue
Paul

8
  • UN- Prüfung "Bearbeiten und Fortfahren aktivieren" ( Tools -> Options -> Debugging -> Edit and Continue > Enable Edit and Continue)
  • Erstellen Sie Ihre App.
  • Starte es.
  • Hör auf.
  • RE aktivieren Sie "Bearbeiten und Fortfahren aktivieren".
  • Erstellen Sie Ihre App.
  • Starte es.
  • Versuchen Sie, die Dateien jetzt beim Debuggen zu bearbeiten.

Das hat bei mir funktioniert. Ich glaube, es könnte ein Fehler oder ein Synchronisierungsproblem mit Visual Studio 2015 sein.


1
Lieber Downvoter, es ist eine gute Praxis, einen Kommentar zu hinterlassen, WARUM Sie die Antwort ablehnen.
Francois Botha

Dies hat sich für mich nicht gelöst, jedoch die Antwort mit der höchsten Stimme unten.
Kairan

6

Sie müssen Bearbeiten und Fortfahren aktivieren .


2
Außerdem müssen Sie sich an einem Haltepunkt befinden oder auf die Schaltfläche Pause (Alle unterbrechen) klicken.
McAden

@marcc: Und viele andere Dinge, weshalb ich auf die Dokumente hingewiesen habe. Die vollständige Liste der nicht unterstützten Änderungen finden Sie im Abschnitt "Nicht unterstützte Szenarien" an dieser Stelle: msdn.microsoft.com/en-us/library/ms164927%28VS.80%29.aspx
Reed Copsey

4
Die Antwort von Seckos (am besten bewertet) hat bei mir funktioniert (VS2015) und ist das genaue Gegenteil Ihrer Antwort.
Alrts

6

Von MSDN

So aktivieren / deaktivieren Sie Bearbeiten und Fortfahren

  • Öffnen Sie die Seite mit den Debugging-Optionen (Extras / Optionen / Debugging). Scrollen

  • bis zur Kategorie Bearbeiten und fortfahren. Wählen Sie zum Aktivieren die Option Bearbeiten aktivieren

  • und Kontrollkästchen Weiter. Deaktivieren Sie zum Deaktivieren das Kontrollkästchen. Hinweis. ...

  • OK klicken.


5

Normalerweise ist das Bearbeiten einer Datei während des Debuggens möglich, wenn Sie einen Haltepunkt erreicht haben (und nur dann).

Es gibt jedoch einige Einschränkungen: - Ihr neuer Code muss kompiliert werden - Sie können den Code in einer Funktion, die Lambda-Ausdrücke enthält, nicht ändern



2

Wenn Sie Bearbeiten und Fortfahren aktiviert haben und C # verwenden, können Sie eine Datei nur bearbeiten, wenn der Debugger entweder über einen Haltepunkt gestoppt wurde oder Sie manuell über "Alle brechen" in die App eingebrochen sind. Sie können einige Dateien immer noch nicht bearbeiten, z. xaml-Dateien in einer WPF-App, aber es sollte die meisten Probleme lösen.


1

Wenn Ihre Quelle aus einer dekompilierten DLL stammt, beachten Sie, dass Dekompilierer möglicherweise eine Anweisung IgnoreSymbolStoreSequencePoints zu Assemblyinfo.cs hinzufügen:

[Assembly: Debuggable (DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]

Diese Zeile muss entfernt werden, um die pdb-Datei zu laden, damit die Bearbeitung und die Fortsetzung fortgesetzt werden können.


1

Das Entfernen des Häkchens bei der folgenden Option funktioniert für mich

Extras> Option> Debugging> Allgemein> Bearbeiten und Fortfahren aktivieren

Geben Sie hier die Bildbeschreibung ein

* Hinweis: Bei einigen anderen Entwicklersystemen hat das Hinzufügen dieses Häkchens den Trick ausgeführt.


1

Ich habe diesen Weg ausprobiert und es funktioniert für mich. Gehen Sie zu CSProj- oder VbProj-Datei -> Wählen Sie Asp.Net Development Server / IIS Express -> Debugger-> Bearbeiten und Fortfahren aktivieren-> Speichern und ausführen.

Geben Sie hier die Bildbeschreibung ein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.