13

Używam VS 2015 Update 2 z projektem WWW asp.net 5 skonfigurowanym do trybu debugowania. Kiedy uruchamiam projekt za pomocą F5, aby go zdebugować i trafić w punkt przerwania, niektóre zmienne nie mogą być obserwowane w oknie podglądu, nawet gdy są w zasięgu. Ponadto, jeśli ustawię kursor nad takimi zmiennymi, żadna wartość nie zostanie wyświetlona.VS 2015 Update 2 - Zmienna nie istnieje podczas debugowania, dlaczego?

Jeśli używam tego samego studia wizualnego, aby utworzyć pusty projekt internetowy i dodać formularz internetowy i umieścić kod w metodzie ładowania, debugger działa dobrze. To znaczy, widzę zmienne w oknie oglądania i widzę ich wartości przez najechanie na nie. Wychodzę z tego, że główną przyczyną problemu nie jest VS2015 Update 2, ale raczej coś związanego z konfiguracją projektu lub rozwiązania, być może specyficzną dla projektów internetowych asp.net 5.

Przeszukałem Internet w poszukiwaniu odpowiedzi i podobnych problemów, które wystąpiły podczas próby debugowania kodu zoptymalizowanego przez kompilator. Ale uruchamiam rozwiązanie w trybie debugowania. Jakieś sugestie?

Screenshot of error

Jestem świadomy Variable does not exist in the current context while debugging ale dotyczy innej wersji visual studio i rozwiązań oferowanych tam nie rozwiązać mój problem.

+0

Wygląda na to zoptymalizowany daleko, ponieważ 'list' ma zasięg lokalny i nigdy nie używać go po' DoSomething() 'zwrotów, więc nie ma sensu w jego posiadaniu. Zrób coś z 'list' przed' i ++ 'i sprawdź, czy to coś zmieni. (Będzie działał prosty panel z jednym z elementów 'listy'). –

+0

Ken White - Zgadzam się, jest zoptymalizowany. Pytanie brzmi: dlaczego iw jaki sposób sprawić, by kompilator nie mógł go zoptymalizować ... W końcu jestem w trybie debugowania? –

+0

Mam ten sam problem od aktualizacji 2! – davenewza

Odpowiedz

7

To błąd wprowadzony w Visual Studio 2015 Update 2. Zasadniczo debugger nie jest w stanie sprawdzić lokalnych zmiennych w modułach dynamicznych. Wydaliśmy dzisiaj poprawkę. Możesz pobrać łatkę here. Dokumentacja łaty to here. Daj mi znać, jeśli łatka nie naprawi Twojego konkretnego scenariusza.

Dzięki!

-Patrick Nelson

+0

Dziękuję bardzo za pomoc. Niestety, ta łata nie rozwiązała mojego problemu. Zainstalowałem łatę i uruchomiłem ten sam test i nadal otrzymuję komunikat, że zmienna nie istnieje w bieżącym kontekście, a po najechaniu kursorami na vary podczas debugowania nie wyświetla się dla nich żadna wartość. Następnie próbowałem odinstalować poprawkę i ponownie ją zainstalować, a także ponownie uruchomić komputer, ale nadal wydaje się, że poprawka nie ma dla mnie żadnego wpływu. –

+0

Czy możesz udostępnić projekt, aby móc go zbadać? –

+0

Byłbym szczęśliwy. Jaki jest najłatwiejszy sposób, aby dostać się do ciebie? –

11

Miałem ten sam problem. W końcu zauważyłem, że niektóre ustawienia są inne po aktualizacji 2.

Musisz przejść do Narzędzia -> Opcje -> Debugowanie -> Ogólne, a następnie zaznaczyć "Użyj zarządzanego trybu zgodności".

To zadziałało dla mnie.

+1

Danny, dziękuję za tę odpowiedź. Mogę potwierdzić, że jest to jeden ze sposobów rozwiązania mojego problemu, ale dzieje się tak dzięki starszemu mechanizmowi debugowania, a nie dzięki naprawianiu konfiguracji nowoczesnego mechanizmu debugowania. Ponadto ta odpowiedź nie wyjaśnia, dlaczego ten sam kod debugowany w dwóch różnych typach projektów z tym samym studiem graficznym zachowuje się inaczej w odniesieniu do tego, czy zmienne istnieją w debugerze. Z tych powodów zdecydowałem się nie akceptować tej odpowiedzi i czekam, czy ktoś inny ma lepsze rozwiązanie. Mimo to, doceniam twoją odpowiedź. –

+0

Uzgodnione. Łatka jest znacznie lepsza. :) –

+0

Pracowałem dla mnie (vs2015) –