VS2015: выражение оценено, но переменная недоступна

Попадание в странную ситуацию при отладке приложения MVC6.

В методе Startup :: Configure () у меня есть перерыв в следующем коде:

var junk = app.ApplicationServices.GetRequiredService<IOptions<AntiforgeryOptions>>().Value.CookieName;

Я пытаюсь найти имя файла cookie для защиты от подделки для конкретного приложения.

Выражение вычисляется ... но когда я пытаюсь посмотреть значение 'junk' в окне Watch, я получаю сообщение об ошибке о том, что 'junk' не существует в текущем контексте.

При наведении указателя мыши на «мусор» в окне кода… ничего не видно. Как будто переменной не существует.

OTOH, если я оцениваю точно такой же код в окне просмотра, имя файла cookie отображается как результирующее значение.

Я добавил несколько строк после первого вызова:

var junkLen = junk.Length;
var junk2 = junk;

Они также выполняются без каких-либо проблем, но вы не можете просмотреть их в окне Watch, потому что они не существуют :).

Я никогда ничего подобного не видел. Есть мысли о том, что происходит?


person Mark Olbert    schedule 29.04.2016    source источник
comment
вы не случайно попали в «Релиз»?   -  person Erresen    schedule 30.04.2016
comment
Неа. Но, используя другие поисковые запросы, я нашел решение.   -  person Mark Olbert    schedule 30.04.2016


Ответы (1)


Оказывается, это недавно обнаруженная ошибка в недавно выпущенном VS 2015 Update 2, которая была исправлена ​​еще недавно выпущенным патчем от Microsoft. Которые можно найти на странице http://go.microsoft.com/fwlink/?LinkID=785969&clcid=0x409.

Обсуждение, включая ссылку на исправление, находится на https://connect.microsoft.com/VisualStudio/feedback/details/1038150/visual-studio-2015-debugger-doesnt-recognize-a-variable

person Mark Olbert    schedule 30.04.2016
comment
Странный. Приветствую вас за ответ :) - person Erresen; 30.04.2016