Почему это происходит только с некоторыми пакетами Nuget? Я уже некоторое время работаю с C#, и это происходит не со всеми пакетами, а только с некоторыми из них.
Поскольку ваша проблема сложна, и мы не можем протестировать все в с нашей стороны, возможно, вы можете следовать этим:
На самом деле , у него есть вероятность конфликта между вашей версией VS Framework или формат ссылки на пакет и определенные c пакеты nuget .
Некоторые специфические c пакеты nuget установлены в проекте библиотеки классов, но когда другие проекты ссылаются на библиотеку классов, содержимое некоторые пакеты c будут конфликтовать со старой версией фреймворка VS, поэтому вам все равно нужно ссылаться на основную версию. Проект можно идентифицировать только путем добавления этой зависимости. И это просто проблема с некоторыми специальными пакетами и версией фреймворка.
И еще одна такая же, как zivkan сказал, вы должны поддерживать согласованный формат управления пакетами (Tools
-> Options
-> Nuget Package Manager
-> General
-> Package Management
) для предотвращения конфликтов из-за разных форматов управления. Вы должны убедиться, что выходные файлы проекта A, включая NP , находятся в выходных файлах Porject B.
Почему это вообще происходит? Поскольку мой проект (проект B) не ссылается напрямую на какие-либо типы или методы из пакета NP, почему я должен включать его явно? Разве не достаточно того, что он включен в проект A, тот, который его использует?
Полагаю, вы использовали старую версию VS (<=VS2017
) для создания таких проектов.
В общем, , вам действительно не нужно включать их в основной проект (проект B).
Фактически , In VS2017 или ранее , в форме Ссылка на проект , действительно существует проблема, заключающаяся в том, что зависимый nuget и его файлы в проекте библиотеки классов будут потеряны в проект, который ссылается на него. К счастью, , эта проблема была исправлена в vs2019.
Итак, если ваша ситуация такая, как я сказал, я предлагаю вам использовать последнюю версию VS2019 .
Или в более старой версии VS, используйте ваше решение -> добавьте nuget в проект B.
На моей стороне с VS2019 я не сталкивался с такой же ошибкой.