Я каким-то образом довел свой проект до состояния, когда Visual Studio 2013 не может его скомпилировать с нелепой ошибкой:
Тип System.Collections.Generic.Dictionary`2 определен в сборке, на которую нет ссылок. Вы должны добавить ссылку на сборку «System.Collections, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a».
Во-первых, такой сборки нет, она не существует. Во-вторых, Dictionary<TKey, TValue>
определяется в mscorlib.dll
, на который, конечно же, ссылаются по умолчанию. Resharper (имеющий собственный механизм анализа кода) сообщает, что решение должно компилироваться нормально.
Я не знаю, как это вообще могло случиться, потому что мои последние изменения вообще не имеют ничего общего с якобы ошибочным местом. Строка ссылается на некоторые стандартные функции LINQ (GroupBy
и ToDictionary
) и работала месяцы без каких-либо изменений. К сожалению, я не могу создать никаких MRE: очевидно, эта ошибка появляется только в контексте моего огромного решения и только с некоторыми специфическими изменениями, внесенными в предположительно неактуальные места.
Вот что я пробовал, и это не сработало:
- Очистить + восстановить
- Изменение целевой платформы с .NET 4.5 на .NET 4.5.1 или .NET 4.0
Кто-нибудь видел такую причуду раньше?