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. В противном случае он будет недоступен.