wake-up-neo.com

Bearbeiten und fortfahren: "Änderungen sind nicht zulässig, wenn ..."

Selbst wenn ich ein sauberes WinForms-Projekt erstelle, funktioniert "Bearbeiten und Fortfahren" nicht und gibt mir den Fehler:

Änderungen sind nicht zulässig, wenn der Debugger an einen bereits ausgeführten Prozess angehängt wurde oder der zu debuggende Code zum Zeitpunkt des Builds oder der Laufzeit optimiert wurde.

  1. Die Option Bearbeiten und Fortfahren ist in Tools → Optionen → Debugging aktiviert. 
  2. Optimierung ist nicht aktiviert. 
  3. Anscheinend ist kein verwalteter Profiler eingerichtet. 
  4. Ich arbeite im Debug-Modus 
  5. Ich arbeite mit x64-CPU und Windows XP 32-Bit, aber das Festlegen des Plattformziels auf x86 anstelle von AnyCpu hilft nicht. 
  6. Das Reparieren der Visual Studio-Installation hilft nicht.

Ich habe auch diesen Artikel auf der MSDN-Website gefunden: 

Nicht unterstützte Szenarien

Bearbeiten und Fortfahren ist in den folgenden Debugging-Szenarien nicht verfügbar:

  • Debuggen unter Windows 98.

  • Debugging im gemischten Modus (nativ/verwaltet).

  • SQL-Debugging.

  • Debuggen eines Dr. Watson-Dumps. 

  • Bearbeiten von Code nach einer nicht behandelten Ausnahme, wenn die Option "Anrufstapel bei nicht behandelten Ausnahmen abwickeln" nicht ausgewählt ist. 

  • Debuggen einer eingebetteten Laufzeitanwendung.

  • Debuggen einer Anwendung mit "Anhängen an", anstatt die Anwendung mit "Start" aus dem Menü "Debug" auszuführen.

  • Debuggen von optimiertem Code.

  • Debuggen von verwaltetem Code, wenn das Ziel eine 64-Bit-Anwendung ist. Wenn Sie "Bearbeiten" und "Fortfahren" verwenden möchten, müssen Sie das Ziel auf x86 setzen. (Projekteigenschaften, Registerkarte Kompilieren, Erweiterte Compiler-Einstellung.).

  • Das Debuggen einer alten Version Ihres Codes nach einer neuen Version konnte aufgrund von Buildfehlern nicht erstellt werden.

Ich kann jedoch zu jedem Punkt in dieser Liste mit "Nein" antworten.

Es hat früher funktioniert, aber vor einigen Tagen hat es aufgehört zu arbeiten, und ich weiß nicht, was der Grund sein könnte.

92
nightcoder

Endlich musste ich das Problem lösen: UNINSTALL Gallio  

Gallio scheint ziemlich viele Ecken und Kanten zu haben, und es ist besser, MbUnit 3.0 nicht zu verwenden, sondern das MbUnit 2.0-Framework, aber den Gallio-Runner, den Sie ohne Installation des Installationsprogramms ausführen (das auch ein Visual Studio-Plugin installiert hat).

Übrigens hatte ich das Problem auch nach dem "Deaktivieren" des Gallio-Plugins. Nur die Deinstallation hat das Problem gelöst.

PS. Bearbeitet von Nightcoder:
In meinem Fall Deaktivieren von TypeMock Isolator (Mocking Framework) schließlich half ! Bearbeiten und fortfahren funktioniert jetzt !!!

Hier ist die Antwort vom TypeMock-Support:

Nach einem weiteren Blick in die Bearbeitung und weiter ausgeben und unterhalten darüber bei Microsoft erreichten wir Die Schlussfolgerung kann nicht gelöst werden für Isolator. Isolator implementiert eine CLR-Profiler und laut unseren Forschung, sobald ein CLR-Profiler .__ ist. aktiviert und angehängt, bearbeiten und Weiter ist automatisch deaktiviert . Es tut mir leid zu sagen, dass dies nicht mehr der Fall ist als Fehler betrachtet, sondern eher als Begrenzung des Isolators.

18
Pejvan

Anwendbare Lösungen

Hier ist eine unvollständige ungeordnete Liste möglicher Lösungen, die Sie ausprobieren können, wenn Sie * Bearbeiten und schnell fortfahren möchten:

  • Stellen Sie sicher, dass Sie sich im Debug-Modus befinden.
  • Stellen Sie sicher, dass Sie keinen Prozess im gemischten Modus starten
  • Versuchen Sie, das CPU-Ziel auf x86 anstatt auf AnyCPU (auf x64-Computern) festzulegen.
  • Deaktivieren Sie das Kontrollkästchen Optimize Code für Debug-Modus in Projekteigenschaften-> Debug.
  • Deaktivieren Sie Optimierungen aktivieren in Erweiterte Compiler-Einstellungen
  • (ASP.NET) Überprüfen Sie die Antwort von nightcoder ob dies der Fall ist
  • (ASP.NET) Überprüfen Sie diese Antwort (von Matrixugly) , wenn dies der Fall ist 
  • (ASP.NET) Stellen Sie sicher, dass Sie Bearbeiten und Fortfahren auf der Registerkarte Web aktiviert haben (vs2010).
  • (ASP.NET) Gehen Sie zu Eigenschaften> Web> Server und stellen Sie sicher, dass Aktivieren und fortfahren unter Visual Studio Development Server verwenden aktiviert ist.
  • (ASP.NET WebAPI) Stellen Sie sicher, dass Sie die Controller-Methode mit einem Haltepunkt beendet haben, bevor Sie versuchen, sie zu bearbeiten.
  • Gehen Sie zu Extras> Optionen> Debugging> Allgemein und stellen Sie sicher, dass Quelldateien müssen genau mit der Originalversion übereinstimmen deaktiviert ist.
  • Verwenden Sie Microsoft-Fälschungen? Es verhindert das Bearbeiten und Fortfahren.
  • Beenden Sie alle * .vshost.exe -Instanzen, indem Sie End Process Tree im Task-Manager auswählen. VS erstellt eine korrekte Instanz neu.
  • Entfernen Sie alle Haltepunkte mit Debug-> Alle Haltepunkte löschen
  • Aktivieren und Fortfahren ist sowohl im Menü Extras> Optionen> Debugging als auch im Projekteinstellungen vorhanden. Überprüfen Sie unbedingt beide Orte. Bearbeiten & Fortfahren wird mit der erweiterten Intellitrace-Einstellung nicht unterstützt.
  • Stellen Sie sicher, dass Debug Info in Projekteigenschaften> Erstellen> Erweitert> Ausgabe> Debug Info auf Full gesetzt ist.
  • Einige Plugins können stören. Überprüfen Sie, indem Sie die anderen Lösungen deaktivieren/deinstallieren und dann erneut versuchen.
  • Wenn Sie nicht genügend aufpassen, kann der Fehler, den Sie beim Beheben dieses Problems erhalten, in etwas anderes geändert werden, das einfacher zu diagnostizieren ist. Z.B. Eine Methode, die einen Lambda-Ausdruck enthält, kann das Bearbeiten und Fortfahren nicht unterstützen.
  • Stellen Sie sicher, dass die Systemvariable COR_ENABLE_PROFILING nicht auf 1 eingestellt ist. Einige Profiler legen dies bei der Installation fest und belassen es nach der Deinstallation. Öffnen Sie eine Eingabeaufforderung und geben Sie set ein, um schnell zu prüfen, ob Ihr System betroffen ist. Entfernen Sie die Variable, oder setzen Sie sie auf 0:

    • Suchen Sie in Windows 8 und höher nach System (Systemsteuerung).
    • Klicken Sie auf den Link Erweiterte Systemeinstellungen.
    • Klicken Sie auf Umgebungsvariablen.
    • COR_ENABLE_PROFILING entfernen
  • Beachten Sie nicht unterstützte Szenarien (wie in der Frage berichtet) und dass nicht unterstützte Bearbeitungen .

* mit 'Sie', ich meine den Besucher der Seite, der seinen Kopf auf eine Tastatur hämmert, um die Lösung zu finden.

Fühlen Sie sich frei, diese Antwort zu bearbeiten, wenn Sie andere Tipps haben!

49
beppe9000

Wenn Sie eine ASP.NET-Anwendung debuggen, gehen Sie zu Eigenschaften> Web> Server. Stellen Sie sicher, dass unter Visual Studio Development Server "Aktivieren und Fortfahren" aktiviert ist.

22
viggity

Ich hatte das gleiche Problem. Ich habe sogar VS 2008 neu installiert, aber das Problem ging nicht weg. Wenn ich jedoch alle Haltepunkte löschte, begann es zu funktionieren. 

Debug->Delete All Breakpoints

Ich denke, es geschah, weil ich eine Aspx-Seite gelöscht hatte, deren Code Unterbrechungspunkte enthielt, und dann eine andere Seite mit demselben Namen erstellt hatte. Dies hat wahrscheinlich den VS 2008 verwirrt.

9
Amer

Dieses Problem ist auf die Einstellung von Intellitrace zurückzuführen

Wenn Intellitrace aktiviert ist, stellen Sie sicher, dass nur das Intellitrace-Ereignis aktiviert ist

Andernfalls ist das Bearbeiten und Fortfahren nicht möglich.

Wenn Sie auf die Intellitrace-Optionen klicken, werden die Warnungen angezeigt.

4
KuldeepVerma

Ein paar Dinge zu überprüfen

  • Stellen Sie sicher, dass Ihre Kompilierung auf Debug vs. Release eingestellt ist
  • Stellen Sie sicher, dass Sie keinen Prozess im gemischten Modus starten
  • Wenn auf einem 64-Bit-Computer Stellen Sie sicher, dass das CPU-Ziel auf x86 anstelle von AnyCPU gesetzt ist

EDIT 

Ich glaube nicht, dass dies wichtig sein sollte, aber stellen Sie sicher, dass der Hosting-Prozess für die Zielplattform aktiviert ist. Wird wahrscheinlich nicht helfen 

Wenn es sich um neue Projekte handelt, könnte es noch subtiler sein. Ich würde folgendes versuchen. 

  • Sichern Sie HKCU:\Software\Wow6432Node\VisualStudio\9.0 (möglicherweise nur umbenennen)
  • Löschen Sie den gleichen Schlüssel
  • Versuchen Sie es erneut 
4
JaredPar

Ich habe festgestellt, dass die Build & Debug-Registerkarte unter "Projekteigenschaften" auf "Debuggen" gesetzt ist und alle anderen Einstellungen korrekt sind. Ich erhalte jedoch immer noch die Meldung. Nachdem Sie jedoch etwas mehr Dort wird auch an zwei Stellen Debug ausgewählt. go figure ... wie viele verschiedene Orte brauchen sie, um debug zu setzen ?????? Obwohl Sie Projekt - Konfiguration auf Debuggen eingestellt haben, wird es unter Build - Manager nicht geändert. Sie haben also die gleiche Einstellung wie Projektkonfiguration geändert - scheint wieder ein Microsoft - Problem zu sein .......

4
RAL

Keine der oben genannten Lösungen funktionierte für mich (auf einer 64-fach-Maschine).

Schließlich habe ich auf 'advanced compiler settings' undNICHT ANGEHAKTES'enable optimizations 'geklickt, und ich kann jetzt den Code schrittweise bearbeiten und während des Debugging bearbeiten.

4
JayW

Wenn Sie sich mit einer ASP.NET-App beschäftigen, stellen Sie sicher, dass Sie auf der Registerkarte "Web" (vs2010) die Option "Bearbeiten" aktiviert haben und fortfahren. In früheren Versionen gab es auch eine separate Einstellung für das ASP.NET-Debugging.

Grüße,

Adam.

4
Adam

Wenn "Bearbeiten und Fortfahren" aktiviert ist, können Sie den Code nur bearbeiten, wenn er sich im Unterbrechungsmodus befindet: z. indem die Ausführung durch eine Ausnahme unterbrochen wird oder ein Haltepunkt erreicht wird.

Dies impliziert, dass Sie den Code nicht bearbeiten können , wenn die Ausführung nicht unterbrochen ist! Beim Debuggen von (ASP.NET-) Webprojekten ist dies sehr uninteressant, da Sie häufig Änderungen zwischen Anforderungen vornehmen möchten. Zu diesem Zeitpunkt wird der Code, den Sie (wahrscheinlich) debuggen, nicht ausgeführt, aber er wird auch nicht angehalten!
Um dies zu lösen, können Sie auf "Alle aufbrechen" klicken (oder drücken Ctrl+Alt+Break). Alternativ können Sie irgendwo einen Haltepunkt setzen (z. B. in Ihrem Page_Load -Ereignis) und dann die Seite neu laden, damit die Ausführung angehalten wird, wenn sie den Haltepunkt erreicht, und jetzt können Sie Code bearbeiten. Sogar Code in .cs-Dateien.

4
Protector one

Aus einem Grund, den ich nicht verstehe, wurde für mich die Einstellung "Debug-Informationen generieren" in den "Erweiterten Compiler-Einstellungen" auf "Nur pdb-only" anstelle von "Full" gesetzt.

Standardmäßig ist dieser Parameter immer auf "Voll" gesetzt, aber ein mysteriöser Poltergeist hat diesen Parameter letzte Nacht geändert. :)

P.S. Ich bin in Visual Basic .Net mit Visual Studio 2010

3
Samuel

Die folgenden Aufnahmen haben mir beim Einsatz von VS2010 geholfen:

gehen Sie zu "Extras", "Optionen", "Debugging", "Allgemein" und stellen Sie sicher, dass "Quelldateien müssen genau mit der Originalversion übereinstimmen" deaktiviert sind.

3
Vinay

Dies geschieht, wenn der Debugger keinen Haltepunkt erreicht hat oder wenn Sie nicht alle Unterbrechungen (Pause) gedrückt haben. Es könnte nicht so einfach sein, oder?

2
Richard Hein

Ich hatte dieses Problem in Microsoft Visual Studio 2008 und die Lösung ist einfach. Wenn Sie Ihr Projekt ausführen, setzen Sie bitte im Debug-Modus nicht "Release". Die andere Personenlösung kann nützlich sein.

2
user2412450

Wenn ich ein neues Projekt erstelle, funktionieren Änderungen während des Debugging nicht. Wenn ich eine neue Website erstelle, funktionieren Änderungen während des Debuggens wie erwartet.

1
Greg

Ich habe ein Dataset aus meinem Projekt entfernt, da ich es nicht verwendet habe. Danach konnte ich das Programm beim Debuggen ändern.

1
ashkan_jami

Ich bin heute auf dieses Problem gestoßen - es stellt sich heraus, dass die Option "Debug-Info" auf "nur pdb" eingestellt ist (oder keine, wie ich mir vorstellen könnte), dass Edit und Continue nicht funktionieren werden.

Stellen Sie sicher, dass Ihre Debug-Info zuerst auf "voll" eingestellt ist!

Projekteigenschaften> Erstellen> Erweitert> Ausgabe> Debug-Informationen

1
Guy Danus

Der Fehler besagt eine mögliche Ursache: "Der zu debuggende Code wurde zur Build- oder Laufzeit optimiert". Gehen Sie zu Projekteigenschaften-> Debuggen und deaktivieren Sie das Kontrollkästchen Code optimieren für den Debugmodus.

1
pbalaga

was für mich funktionierte, war das Deaktivieren von "Use Managed Compatibility Mode" unter

Extras -> Optionen -> Debugging

TBN: Das Aktivieren oder Deaktivieren der Option "Quelldatei muss genau mit der Originalversion übereinstimmen" scheint die E & C nicht zu beeinflussen

Hoffe das kann helfen.

1
B. Cafaro

Einige Dinge, die bei der Verwendung von VS2010 zu helfen schienen:

  • gehen Sie zu "Extras", "Optionen", "Debugging", "Allgemein" und stellen Sie sicher, dass "Quelldateien müssen genau mit der Originalversion übereinstimmen" deaktiviert sind.
  • mehrere .vshost.exe-Instanzen können von z. Trennen des VS-Debuggers von einem gestoppten Prozess. Dies wird die Haltepunkte beeinträchtigen und auch kompilieren. Verwenden Sie den Task-Manager auf der Registerkarte Prozesse, um alle Instanzen von .vshost.exe zu beenden, indem Sie mit der rechten Maustaste auf jede Instanz klicken und Prozessbaum beenden auswählen. VS erstellt eine neue Instanz.
1
Scott

Ich habe alle Änderungen vorgenommen, die in jeder anderen Antwort erwähnt wurden, und keine hat funktioniert. Was habe ich gelernt? Aktivieren und fortfahren ist sowohl im Menü Extras> Optionen> Debugging als auch in den Projekteinstellungen vorhanden. Nachdem ich beides überprüft hatte, funktionierten für mich Enable und Continue.

1
stevebot

Ich hatte das in einer verknüpften Klassendatei. Der Rest des Projekts erlaubte E & C, aber ich hatte den gleichen Fehler beim Bearbeiten der verknüpften Datei. Die Lösung bestand darin, die verknüpfte Datei in ihr eigenes Projekt aufzuteilen und auf das Projekt zu verweisen.

0
jlo-gmail

Scheint unlogisch, aber nur das Deaktivieren der Optionen "Bearbeiten" und "Fortfahren" von VS 2017 war möglich ... Dann begann AspNet zu bearbeiten und weiter zu arbeiten ...

0
FRK

In meinem Fall hilft nur das Zurücksetzen auf die Standard-Debug-Einstellungen und das Einstellen von IntelliTrace-> nur Intellitrace-Events

0
Yuriy Vikulov

Aktivieren Sie die Bearbeitung und fahren Sie nur mit dem Arbeitsablauf fort. IIS Express . Arbeiten Sie nicht im lokalen ISS oder externen Host.

0
Ahmad Aghazadeh

Für mich geschah es, nachdem ich einen Haltepunkt erreicht hatte, einige Änderungen vorgenommen hatte, dann weiter durch den Code ging und schließlich F5 oder "Weiter" drückte, um zum Ende und aus meinem Codeblock zu gelangen. 

Nachdem ich die Option "Alle Haltepunkte löschen" ausprobiert hatte (Strg + Umschalt + PrtScn und OK in der Eingabeaufforderung) und einen Rebuild All-Vorgang ausführte, hatte ich immer noch einen Fehler in meinem Fehlerprotokoll bezüglich meines DLL für mein Projekt nicht geladen ... "Änderungen können nicht übernommen werden, x.DLL nicht geladen". Nach dem Neustart von Visual Studio war alles wieder in Ordnung. Für mich war es einfach so einfach. 

Andere Dinge hier funktionierten nicht für mich, wie zB "Quelldateien müssen genau mit der Originalversion übereinstimmen" wurde geprüft, und nachdem alles wieder einwandfrei funktionierte, war es auch gut, "Any CPU" auf meiner x64-Maschine anzuvisieren x86 oder x64 nicht angeben müssen. Ich habe "Bearbeiten aktivieren und fortsetzen" in den Einstellungen unter Extras> Optionen> Debugging und in den Projekteinstellungen unter "Eigenschaften"> "Web" aktiviert.

0
vapcguy

In Visual Studio 2005 war ich mit demselben Problem konfrontiert. Meine Konfiguration ist 64 Bit. Bei einer der VS-Lösungen funktionierte es einwandfrei, bei der anderen jedoch nicht. Ich habe festgestellt, dass nur aktiviert ist "Aktivieren und Bearbeiten" für das Projekt, in dem ich Änderungen im Debug-Modus vornehmen wollte. Dies wurde endlich behoben, als ich für mein Startprojekt auch "Aktivieren und Fortfahren" ausgewählt habe.

Es wurden keine Konfigurationsänderungen außer dem Aktivieren und Fortfahren benötigt.

0
Sanjeev Singh

Ich hatte ein Datenbankprojekt in der Lösung, das die Bearbeitung des Webforms-Projekts verhinderte.

Ich habe im Datenbankprojekt auf "Entladen" geklickt, und jetzt funktioniert alles süss.

0
Adam

Ich hatte das gleiche Problem. Mein Problem war, dass ich eine Datei ändern konnte, aber nicht eine andere (beide befinden sich im selben Projekt). Später stellte ich fest, dass die Datei, die ich nicht ändern konnte, auch Teil eines anderen Projekts war. Dass ein anderes Projekt (Unit Test) nicht geladen wurde und intelligent VS-Debugger zeigt den Fehler an, dass Assembly für diese Datei nicht geladen wurde und Änderungen nicht zulässig sind. Wie seltsam!

Daher musste ich das Unit-Test-Projekt entladen und das EnC-Debugging fortsetzen.

0
Ajay

Für VS2017 kann es hilfreich sein, die .suo-Datei in Ihrer Projektmappe zu entfernen. Das hat für mich funktioniert. :)

0
Nieksa

eingebettete Interop-Typen Visual Studio sollte auf "False" gesetzt werden

0
Wilma Fingerdoo

Hatte dieses Problem im Rider. Ich hatte die Datei .csproj direkt anstelle der Datei .sln geöffnet. Die Folge ist, dass die Laufzeitkonfiguration nicht auf Debugging eingestellt war, obwohl ich auf die Debug-Schaltfläche geklickt habe. Sie werden feststellen, dass in der Symbolleiste neben der Debug-Schaltfläche <No Configurations> steht.

0
Bluebaron