Не удалось найти файл метаданных Visual Studio 2017 EntityFramework.dll

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
562
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

пожалуйста, посмотрите папку bin, иногда dll там нет.

ну, ошибка препятствует завершению компиляции, поэтому, конечно, DLL не будет в папке bin, плюс проблема в том, почему компиляция вообще не находит эту DLL.

For Comment 26.03.2019 21:44

Вы пытались запустить Visual Studio от имени администратора, удалить папку obj, перестроить все решение?

Mahmoud-Abdelslam 26.03.2019 22:10

В Visual Studio вверху нажмите Build -> Configuration Manager. Убедитесь, что флажок сборки рядом с вашим проектом установлен. Если он уже есть, снимите флажок, а затем снова включите его. Очистите свое решение и соберите его снова после этого.

Обычно это происходит, когда команды возвращают файлы, которые не следует возвращать (например, файл .suo), или «оптимизировали» свои сборки, чтобы исключить редко изменяемые проекты. (отключение проектов в диспетчере конфигураций.)

Другая распространенная причина отсутствия ссылок — это когда разработчики ссылаются на зависимость из папки /bin вместо папки пакетов, но похоже, что вы подтвердили, что это не так.

Другие вопросы, такие как Не удалось найти файл метаданных «.dll», перечисляют ряд вещей, которые нужно проверить, поэтому ваша проблема наверняка будет одной из них. Попробуйте создать каждый проект по отдельности, работая с проектами, которые не имеют зависимостей от проектов, вверх к основным проектам приложения. Убедитесь, что они используют одни и те же версии .Net, проверьте пакеты решения NuGet на наличие зависимостей с «несколькими версиями» и объедините их, чтобы решение использовало одну версию каждой зависимости. (обычно хорошо подходит для очистки) Также просмотрите файлы .config для перенаправления версий, которые иногда зомбируются в системе управления версиями.

Ответ принят как подходящий

Хорошо, я решил эту проблему. Вот что произошло. По-видимому, при клонировании в локальный каталог одна из папок на пути имеет пробел в своем имени (например, My DSS), и этот проблема с нужетом, по-видимому, указывает на неспособность nuget найти пакет с пробелом в пути. Итак, как только я изменил имя этой папки на MyDSS, она успешно скомпилировалась.

Другие вопросы по теме