VS2015: Тип "XXX" определен в сборке, на которую не ссылаются во время отладки

Я не могу отлаживать библиотеку PCL (используя очень простой тестовый проект). Когда удары точки останова и перезагрузка окна просмотра, он бросает CS0012: The type 'TaskAwaiter<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Threading.Tasks, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null'. Локальные и автоматические окна остаются пустыми.

Я использую RTM для Visual Studio 2015 (я не обновлялся из предыдущих версий - это чистая установка из ISO) на Windows 10 Pro (чистая установка также). Мой тестовый проект нацелен на Windows Phone 8.1, и я отлаживаю его с помощью реального устройства.

Я нашел пару ссылок на аналогичную ошибку, но это произошло при построении решения. В моем случае решение строит просто отлично, никаких ошибок или предупреждений. Я попытался добавить System.Threading.Tasks.dll вручную, но VS не позволит мне - он говорит, что он автоматически добавляется системой сборки.

Кто-нибудь сталкивался с этой проблемой (и, надеюсь, исправил ее)?

Ответ 1

У меня была точно такая же ошибка CS0012:... TaskAwaiter < > ... Это известная проблема в VS2015.

https://support.microsoft.com/en-us/kb/3025133

Чтобы решить эту проблему, перейдите в Debug - Options - General - используйте устаревший оценщик выражения С# и VB (галочка)

Ответ 2

Я нашел решение для решения этой проблемы с ошибкой CS0012 в этом блоге.
Просто добавьте ссылку на отсутствующие DLL из:

"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\Facades"

и ошибки исчезли.

Ответ 3

(Поскольку у меня недостаточно репутации для комментариев, я должен написать новый ответ...)

Обязательно остановить отладку, прежде чем пытаться установить флажок Использовать устаревшие оценки выражений С# и VB. В противном случае он будет недоступен.