У меня есть решение с несколькими проектами. Проект A имеет ссылку на проект B. В моем A.csproj:
Код: Выделить всё
{795b8266-e62c-4d04-b8eb-cfrf5a31f55x}
B
После обновления, когда я собираю проект B в VS он собирается успешно, но когда я собираю проект A, я получаю множество ошибок с кодом типа CS0246. Не удалось найти тип или имя пространства имен «B» (вам не хватает директивы using или ссылку на сборку?)..
Странно то, что когда я собираю решение из командной строки разработчика VS с помощью MSBuild Solution.sln, более того, я не получаю никаких ошибок , если я изменю ссылку с «ProjectReference» на обычную ссылку на dll (просматривая ее), эта ошибка исчезнет.
Код: Выделить всё
False
..\B\bin\Release\B.dll
Что я пытался сделать:
- Убедился, что нет несоответствия целевой платформы .NET: оба проекта A и B, а также другие используют .NET 4.8.
- Выполнил обновление – Пакет – переустановить в диспетчере пакетов Nuget CMD
- Удалил ссылку и добавил ее обратно
- Очистил решение и построил заново
- Выгрузил оба проекта и перезагрузил их.
- Перезапустил VS в режиме администратора.
- Удалил проект и клонировал его заново.
- Перенацелить решение на разные версии Windows SDK
- Проверил порядок сборки и убедился, что проект B собирается перед проектом A
- Удален %LocalAppData%\Microsoft\VisualStudio\2019\ComponentModelCache
Подробнее здесь: https://stackoverflow.com/questions/787 ... pgrade-4-8