Я работаю над программой C#, которая использует EntityFramework, я клонировал программу из репозитория git, но теперь у нее эта ужасная ошибка Metadata file 'EntityFramework.dll' could not be found. Я искал и пробовал бесчисленное количество предложений для такого рода проблем, но ни одно из них не сработало. Я уже проверил, что ссылка на EntityFramework.dll в файлах .csproj верна, и она определенно находится в папке packages\EntityFramework.6.2.0\lib\net45\. Поэтому я не уверен, что еще попробовать.





пожалуйста, посмотрите папку bin, иногда dll там нет.
Вы пытались запустить Visual Studio от имени администратора, удалить папку obj, перестроить все решение?
В Visual Studio вверху нажмите Build -> Configuration Manager. Убедитесь, что флажок сборки рядом с вашим проектом установлен. Если он уже есть, снимите флажок, а затем снова включите его. Очистите свое решение и соберите его снова после этого.
Обычно это происходит, когда команды возвращают файлы, которые не следует возвращать (например, файл .suo), или «оптимизировали» свои сборки, чтобы исключить редко изменяемые проекты. (отключение проектов в диспетчере конфигураций.)
Другая распространенная причина отсутствия ссылок — это когда разработчики ссылаются на зависимость из папки /bin вместо папки пакетов, но похоже, что вы подтвердили, что это не так.
Другие вопросы, такие как Не удалось найти файл метаданных «.dll», перечисляют ряд вещей, которые нужно проверить, поэтому ваша проблема наверняка будет одной из них. Попробуйте создать каждый проект по отдельности, работая с проектами, которые не имеют зависимостей от проектов, вверх к основным проектам приложения. Убедитесь, что они используют одни и те же версии .Net, проверьте пакеты решения NuGet на наличие зависимостей с «несколькими версиями» и объедините их, чтобы решение использовало одну версию каждой зависимости. (обычно хорошо подходит для очистки) Также просмотрите файлы .config для перенаправления версий, которые иногда зомбируются в системе управления версиями.
Хорошо, я решил эту проблему. Вот что произошло. По-видимому, при клонировании в локальный каталог одна из папок на пути имеет пробел в своем имени (например, My DSS), и этот проблема с нужетом, по-видимому, указывает на неспособность nuget найти пакет с пробелом в пути. Итак, как только я изменил имя этой папки на MyDSS, она успешно скомпилировалась.
ну, ошибка препятствует завершению компиляции, поэтому, конечно, DLL не будет в папке bin, плюс проблема в том, почему компиляция вообще не находит эту DLL.