Nawet jeśli utworzę czysty projekt WinForms, Edytuj i Kontynuuj nie działa i wyświetla mi błąd:
Zmiany nie są dozwolone, gdy debugger został dołączony do już działającego procesu lub debugowany kod został zoptymalizowany podczas kompilacji lub wykonywania.
- Opcja Edytuj i kontynuuj jest zaznaczona w menu Narzędzia → Opcje → Debugowanie.
- Optymalizacja nie jest włączona.
- Wygląda na to, że nie ma skonfigurowanego żadnego zarządzanego profilera.
- Pracuję w trybie debugowania
- Używam procesora x64 i 32-bitowego systemu Windows XP, ale ustawienie platformy docelowej na x86 zamiast AnyCpu nie pomaga.
- Naprawianie instalacji programu Visual Studio nie pomaga.
Znalazłem również ten artykuł na stronie MSDN:
Nieobsługiwane scenariusze
Edycja i kontynuacja nie jest dostępna w następujących scenariuszach debugowania:
Debugowanie w systemie Windows 98.
Debugowanie w trybie mieszanym (natywne / zarządzane).
Debugowanie SQL.
Debugowanie zrzutu Dr. Watsona.
Edycja kodu po nieobsługiwanym wyjątku, gdy opcja „Rozwiń stos wywołań dla nieobsłużonych wyjątków” nie jest zaznaczona.
Debugowanie wbudowanej aplikacji wykonawczej.
Debugowanie aplikacji przy użyciu opcji Dołącz do zamiast uruchamiania aplikacji za pomocą polecenia Start z menu Debuguj.
Debugowanie zoptymalizowanego kodu.
Debugowanie kodu zarządzanego, gdy celem jest aplikacja 64-bitowa. Jeśli chcesz użyć opcji Edytuj i Kontynuuj, musisz ustawić cel na x86. (Właściwości projektu, karta Kompiluj, Zaawansowane ustawienia kompilatora).
Debugowanie starej wersji kodu po niepowodzeniu kompilacji nowej wersji z powodu błędów kompilacji.
Ale mogę odpowiedzieć „Nie” na każdą pozycję na tej liście.
Wcześniej działało, ale kilka dni temu przestało działać i nie wiem, co może być tego przyczyną.
źródło
Odpowiedzi:
W końcu udało mi się rozwiązać problem: ODINSTALUJ Gallio
Wydaje się, że Gallio ma sporo nierównych krawędzi i lepiej nie używać MbUnit 3.0, ale używać frameworka MbUnit 2.0, ale używać programu Gallio Runner, którego używasz bez instalowania z instalatora (który również zainstalował wtyczkę Visual Studio).
Nawiasem mówiąc, miałem problem nawet po „wyłączeniu” wtyczki Gallio. Tylko odinstalowanie rozwiązało problem.
PS. Edytowane przez nightcoder:
W moim przypadku wyłączenie TypeMock Isolator (mocking framework) w końcu pomogło ! Edytuj i kontynuuj teraz działa !!!
Oto odpowiedź od wsparcia TypeMock:
źródło
Inne odpowiednie rozwiązania
Poniżej znajduje się niekompletna, nieuporządkowana lista możliwych rozwiązań do wypróbowania, jeśli * próbujesz szybko naprawić i kontynuować.
Upewnij się, że zmienna systemowa
COR_ENABLE_PROFILING
nie jest ustawiona na1
. Niektóre programy profilujące ustawiają to podczas instalacji i pozostawiają tak po odinstalowaniu. Otwórz wiersz polecenia i wpisz,set
aby szybko sprawdzić, czy system ma wpływ, jeśli tak, usuń zmienną lub ustaw ją na0
:COR_ENABLE_PROFILING
Pamiętaj o nieobsługiwanych scenariuszach (jak zgłoszono w pytaniu) i nieobsługiwanych zmianach .
* przez „ty” mam na myśli gościa strony, który wali głową w klawiaturę, aby znaleźć rozwiązanie.
Możesz edytować tę odpowiedź, aby dodać obejście, jeśli nie ma go tutaj!
źródło
Jeśli debugujesz aplikację ASP.NET, przejdź do właściwości> WWW> Serwery i upewnij się, że opcja „Włącz i kontynuuj” jest zaznaczona w obszarze Użyj programu Visual Studio Development Server.
źródło
Miałem ten sam problem. Nawet ponownie zainstalowałem VS 2008, ale problem nie zniknął. Jednak kiedy usunąłem wszystkie punkty przerwania, zaczęło działać.
Myślę, że działo się to, ponieważ usunąłem stronę aspx, która miała punkty przerwania w swoim kodzie, a następnie utworzyłem kolejną stronę o tej samej nazwie. To prawdopodobnie zmyliło VS 2008.
źródło
Kilka rzeczy do sprawdzenia
EDYTOWAĆ
Uważam, że nie powinno to mieć znaczenia, ale upewnij się, że proces hostingu jest włączony dla platformy docelowej. Prawdopodobnie nie pomoże.
Jeśli powtórzy się dla nowych projektów, może to być coś jeszcze bardziej subtelnego. Spróbowałbym następujących.
źródło
Żadne z powyższych rozwiązań nie działało dla mnie (działa na komputerze 64x).
W końcu kliknąłem
'advanced compiler settings'
i ODPOWIEDZIŁEM'enable optimizations
'i mogę teraz przechodzić przez kod i edytować podczas debugowania.źródło
Opcja „Edytuj i kontynuuj”, gdy jest włączona, pozwala na edycję kodu tylko wtedy, gdy jest w trybie przerwania, np. Przez wstrzymanie wykonywania przez wyjątek lub przez uderzenie w punkt przerwania.
Oznacza to, że nie możesz edytować kodu, gdy wykonanie nie jest wstrzymane! Jeśli chodzi o debugowanie (ASP.NET) projektów internetowych, jest to bardzo nieintuicyjne, ponieważ często chcesz wprowadzać zmiany między żądaniami. W tej chwili kod, który debugujesz (prawdopodobnie) nie jest uruchomiony, ale nie jest też wstrzymany!
Aby rozwiązać ten problem, możesz kliknąć „Przerwij wszystko” (lub nacisnąć Ctrl+ Alt+ Break). Alternatywnie, ustaw gdzieś punkt przerwania (np. W
Page_Load
zdarzeniu), a następnie załaduj ponownie stronę, aby wykonanie zatrzymało się, gdy osiągnie punkt przerwania, a teraz możesz edytować kod. Nawet kod w.cs
plikach.źródło
Dla mnie z powodu, którego nie rozumiem, ustawienie „Generuj informacje debugowania” w „Zaawansowanych ustawieniach kompilatora” zostało ustawione na „tylko pdb” zamiast „Pełne”.
Domyślnie ten parametr jest zawsze ustawiony na „Full”, ale tajemniczy poltergeist zmienił ten parametr ostatniej nocy. :)
PS Jestem w Visual Basic .Net z Visual Studio 2010
źródło
Jeśli problem dotyczy aplikacji ASP.NET, upewnij się, że masz włączoną edycję i kontynuację na karcie sieci Web (w porównaniu z 2010). We wcześniejszych wersjach istniało również osobne ustawienie debugowania ASP.NET.
Pozdrowienia,
Adam.
źródło
Zauważyłem, że chociaż pod właściwościami projektu zakładka build & debug są ustawione na Debug, a wszystkie inne ustawienia są poprawne, nadal otrzymuję komunikat, jednak po przekopaniu się więcej w menu Build wybierz Configurations Manager ... i upewnij się, że wybrano Debug również tam w dwóch miejscach. idź, wyobraź sobie ... w ilu różnych miejscach trzeba ustawić debugowanie ?????? mimo że ustawisz Projekt - Konfiguracja na Debuguj, a następnie w obszarze Kompilacja - Menedżer nie zostanie zmieniony, więc zmienisz tam również to samo ustawienie Konfiguracja projektu - znowu wydaje się, że problem Microsoft .......
źródło
Ten problem jest spowodowany ustawieniem funkcji Intellitrace
Jeśli funkcja Intellitrace jest włączona, upewnij się, że zaznaczone jest tylko zdarzenie Intellitrace
W przeciwnym razie nie pozwoli to na edycję i kontynuowanie.
Jeśli klikniesz na opcje Intellitrace, zobaczysz ostrzeżenia.
źródło
Poniższe zdjęcia pomogły mi w używaniu VS2010:
przejdź do Narzędzia, Opcje, Debugowanie, Ogólne i upewnij się, że opcja „Wymagaj dokładnego dopasowania plików źródłowych do wersji oryginalnej” nie jest zaznaczona.
źródło
Dzieje się tak, gdy debugger nie osiągnął punktu przerwania lub nie trafiłeś Przerwij wszystko (pauza). To nie może być takie proste, prawda?
źródło
Błąd mówi, że możliwa przyczyna to: „debugowany kod został zoptymalizowany w czasie kompilacji lub wykonywania”. Przejdź do Właściwości projektu-> Debuguj i odznacz pole Optymalizuj kod dla trybu debugowania.
źródło
Miałem ten problem w Microsoft Visual Studio 2008 i rozwiązanie jest proste. po uruchomieniu projektu ustaw tryb „Debugowanie”, a nie „Wydanie”. Przydatne może być rozwiązanie innej osoby.
źródło
Jeśli utworzę nowy projekt, zmiany podczas debugowania nie działają. Jeśli utworzę nową witrynę internetową, zmiany podczas debugowania będą działać zgodnie z oczekiwaniami.
źródło
W moim przypadku wystarczy przywrócenie domyślnych ustawień debugera i ustawienie IntelliTrace-> tylko zdarzenia intellytrace pomagają
źródło
Niektóre rzeczy, które wydawały się pomagać w korzystaniu z VS2010:
źródło
Usunąłem zbiór danych z mojego projektu, ponieważ go nie używałem. Potem mogłem modyfikować program podczas debugowania.
źródło
Zrobiłem wszystkie zmiany wymienione w każdej innej odpowiedzi i żadna nie zadziałała. Czego się nauczyłem? Włącz i Kontynuuj istnieje w menu Narzędzia> Opcje> Debugowanie, a także w ustawieniach projektu. Po sprawdzeniu obu opcji Włącz i Kontynuuj zadziałało.
źródło
Wpadłem na to dzisiaj - okazuje się, że ustawienie opcji Debug Info na pdb-only (lub brak, jak sobie wyobrażam) uniemożliwi działanie funkcji Edit i Continue.
Najpierw upewnij się, że informacje o debugowaniu są ustawione na „pełne”!
Właściwości projektu> Kompilacja> Zaawansowane> Dane wyjściowe> Informacje o debugowaniu
źródło
Wydaje się to nielogiczne, ale jedynym sposobem było wyłączenie edycji i kontynuowanie z opcji VS 2017 ... Następnie edycja AspNet i kontynuacja zaczęła działać ...
źródło
w moim przypadku działało odznaczenie opcji „Użyj zarządzanego trybu zgodności” w sekcji
TBN: zaznaczenie lub odznaczenie „Wymagaj, aby plik źródłowy dokładnie pasował do wersji oryginalnej” wydaje się nie wpływać na E&C
Mam nadzieję, że to pomoże.
źródło
Włącz edycję i kontynuuj tylko pracę, uruchom IIS Express. Nie pracuj w lokalnym ISS lub zewnętrznym hoście.
źródło
Miałem ten irytujący problem, odkąd zaktualizowałem VS 2019 do 16.4.3 i spowodowałem dużo bólu głowy.
W końcu rozwiązałem problem w ten sposób:
1. Zatrzymaj debugowanie
2. Wybierz rozwiązanie z „Eksploratora rozwiązań”
3. W oknie Właściwości zmień właściwość „Aktywna konfiguracja” z „Zwolnienie | Dowolny procesor” na „Debugowanie | Dowolny procesor”
4 W Debug> Opcje> Ogólne Zaznacz pole wyboru Edytuj i kontynuuj
To zadziałało dla mnie i mam nadzieję, że zadziała również dla Ciebie.
źródło
osadzanie typów międzyoperacyjnych Visual Studio powinno mieć wartość false
źródło
Zdarzyło mi się to w połączonym pliku zajęć. Reszta projektu pozwoliła na E&C, ale dostałem ten sam błąd podczas edycji połączonego pliku. Rozwiązaniem było rozbicie połączonego pliku na swój własny projekt i odniesienie do projektu.
źródło
Miałem ten sam problem. Mój problem polegał na tym, że mogłem zmodyfikować plik, ale nie inny (oba są w tym samym projekcie). Później stwierdziłem, że plik, którego nie mogłem zmodyfikować, był również częścią innego projektu. Że inny projekt (test jednostkowy) nie został załadowany, a inteligentny debuger VS pokazuje błąd, że zestaw dla tego danego pliku nie został załadowany, a zmiany są niedozwolone. Jakie dziwne!
W związku z tym musiałem zwolnić projekt testu jednostkowego i kontynuować debugowanie EnC.
źródło
W rozwiązaniu miałem projekt bazy danych, który zatrzymał edycję projektu webforms.
Kliknąłem „Unload” w projekcie bazy danych i wszystko działa teraz słodko.
źródło
W przypadku VS2017 może pomóc usunąć plik .suo z twojego rozwiązania, zadziałało dla mnie. :)
źródło