MSB3258: mscorlib 4.0.0.0 и 2.0.0.0
Итак, я пытаюсь скомпилировать проект на VS 2017, и я получаю это:
warning MSB3258: The primary reference "someLib.dll" could not be resolved because it has an indirect dependency on the .NET Framework assembly "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
После этого у меня возникают ошибки, связанные с этой dll (например, тип или пространство имен не находятся в пространстве имен), но когда я дважды щелкаю по ошибке, она исчезает вместе с красной волнистой линией в коде, намекая на то, что это не актуальная проблема.
Ничто из того, что я пробовал, не работает: все проекты на 3.5, я удалил и заново добавил все свои ссылки, и это не происходит ни на одном другом компьютере, кроме моего. Я также попытался удалить mscorlib из GAC (как бы глупо это ни было), но, конечно, это мне не дало.
Я увидел кое-что, что может иметь отношение: https://developercommunity.visualstudio.com/content/problem/230636/assemblydependency-now-misidentifying-indirect-dep.html
Кроме удаления и переустановки VS, не уверен, что делать. Если у кого-нибудь есть идея, я буду рад ее попробовать.
2 ответа
Это была странная ссылка на версию Interop.Shell32.dll, называемую просто "Shell32.dll". Не знаю, откуда это.
Если у кого-то еще есть такая проблема: удалите каждую зависимость по одной за раз и скомпилируйте. Даже Microsoft.
Ответ из комментариев:
Проверьте библиотеки someLib.dll
Рекомендации. Может быть, они содержат ссылку на mscorlib.dll 4.0.0.0
,
Подсказка: добавьте официальные библиотеки Microsoft через Via Add Reference > "Вкладка Сборки" (слева, не знаете, правильно ли названа вкладка). Не добавляйте их, просматривая их.