VS 2017 файл метаданных".не удалось найти dll

Я знаю, что есть еще один вопрос с точно такой же проблемой, но я прошел через все эти ответы, и никто мне не помог. :( (вот в чем вопрос.)

Я только что создал новый ASP.NET проект MVC и присоединился к нескольким ".dll находится в решении. Теперь, когда я пытаюсь построить проект, я получаю сообщение об ошибке показано ниже на 3 из 5 библиотек.

Error   CS0006  Metadata file 'C:Users...sourceDatabasebinDebugDataAccessLayer.dll' could not be found   Logic   C:Users...sourceLogicCSC   1   Active

Error   CS0006  Metadata file 'C:Users...sourceLogicbinDebugLogic.dll' could not be found    PTS2-MVC    C:Users...sourcePTS2-MVCCSC    1   Active

Error   CS0006  Metadata file 'C:Users...sourcePTS2-MVCbinPTS2-MVC.dll' could not be found    PTS2-MVC.Tests  C:Users...sourcePTS2-MVC.TestsCSC  1   Active

когда я иду в папку bindebug этого .dll, я вижу, что он пуст, а другой .dll, где I не получите сообщение об ошибке, не пусто. Но я не знаю, как это исправить или что я сделал, чтобы это произошло.

самый распространенный ответ-перейти к свойства на решение и перейти к конфигурация и убрать ->применить ->Регистрация и применить снова, но это не сработало

17 ответов


хорошо, я исправил это сейчас, проблема заключалась в том, что у меня были некоторые другие обычные сообщения об ошибках в моем проекте, и, по-видимому, после того, как я исправил их, и когда я очистил и построил свой проект снова, то все .библиотеки DLL удалось :Д

поэтому для других людей с этой проблемой в будущем: убедитесь, что у вас нет других сообщений об ошибках в вашем проекте, и если вы это сделаете, сначала исправьте их!

Я хотел бы поблагодарить вас всех за помощь!


шаги по исправлению этой ошибки: файл метаданных .dll не удалось найти.

  1. Очистить Все Проекты.

  2. Выгрузить Все Проекты.

  3. Обновить Все Проекты.

  4. Перестроить Решение.

затем проблема решена.


в моем случае произошла ошибка, но она не была должным образом проанализирована VS и показана в окне "список ошибок". Чтобы найти его, вы просматриваете ol "Output" из окна сборки и анализируете сообщения, начинающиеся сверху вниз, и разрешаете фактическую ошибку. M$, пожалуйста, исправьте! Это огромная трата времени коллективными разработчиками миров.


У меня была эта проблема с решением, содержащим несколько проектов.

Я думаю, это произошло от дублирования a .csproj файл и добавление копии в решение. А .csproj файл содержит <ProjectGuid> элемент. Я установил GUID скопированного проекта на новый.

Я также выполнил следующие шаги:

  1. закрыть решение
  2. удалить папку bin
  3. удалить все obj папки
  4. открыть решение и построить

дважды проверьте имя папки проекта. В моем случае моя папка проекта была названа с пробелами в ней. Когда я клонировал проект из Team Foundation Server с помощью Git bash, пробелы в имени папки были преобразованы в: "%20". Изменение их обратно в пробелы исправило проблему для меня.


еще одна вещь, которую вы должны проверить, - это целевая платформа любых ссылочных проектов, чтобы убедиться, что вызывающий проект использует ту же или более позднюю версию платформы.

У меня была эта проблема, я попробовал все ранее предложенные ответы, а затем на интуиции проверил рамки. Один из проектов, на который ссылались, был нацелен на 4.6.1, когда вызывающий проект был только 4.5.2.


у меня такая же проблема, проблема в том, что путь решения имеет пробелы в имени и vs по какой-то причине не разрешает пакет... загрузите мой репозиторий снова, просто переименовав решение с пробелами в имени.

Эл.г:

/Repo/Project Name/src

должно быть

/Repo/ProjectName/src

в моем случае я столкнулся с той же ошибки. Одним из моих проектных решений была ссылка на сборку из другого местоположения NuGet. Я просто изменил его, чтобы исправить местоположение, чтобы решить эту ошибку и перестроить. и ничего себе проект получить построить успешно, и все остальные ошибки ушли.


запуск этой команды в bash для удаления всех бункеров работал для меня

$ find . -iname "bin" -o -iname "obj" | xargs rm -rf

Не могу гарантировать, что он будет работать для кого-то еще, хотя

также имейте в виду, что он удалит все файлы bin-поэтому вам придется перестроить все проекты. Очевидно, лучше всего cd в соответствующий каталог перед его использованием.


эта проблема возникает при переименовании решения и .NET framework не удается найти старое решение.

чтобы решить эту проблему, вам нужно найти и заменить старое имя и все зависят от него с новым именем. Если вам нужно просмотреть физический файл через проводник, сделайте это.

файлы, которые обычно затрагиваются AssemblyInfo.цезий. ,sln и свойства>приложение>имя сборки и пространство имен по умолчанию. Обязательно обновите их с помощью новое имя.

Откройте проводник, если папка со старым именем все еще существует, вам нужно удалить ее. Затем очистите и создайте решение, пока ошибка не исчезнет. (При необходимости очистите и постройте проект Один за другим, особенно затронутый проект.)

надеюсь, это поможет.


я исправляю эту проблему, выполнив следующие шаги:

  1. Очистить Решение
  2. Закрыть Visual Studio
  3. удаление / bin из каталога проекта
  4. Перезапустите Visual Studio
  5. Перестроить Решение

для меня уборка и строительство не работали. Разгрузка проекта не сработала. Перезапуск Visual Studio или даже ПК не работал. Вот что сработало:

перейдите к каждому из проектов, которые вызывают ошибку, и в ссылках удалите ссылку на проблемный проект и добавьте его снова. Это решает проблему.

проблема, похоже, связана с перемещением проекта (например, переместить его в папку), а затем другой проект, который ссылается на него, имеет свой путь неправильно и не может его найти.


очистка моего решения вызвала эту проблему с Visual Studio 2017. Разгрузка / перегрузка проектов или больше очистки не имели никакого значения. Единственное, что сработало, - это закрытие и перезапуск Visual Studio.


проверьте, что все проекты загружены. В моем случае один из проектов был выгружен, и перезагрузка проекта очищает ошибки.


У меня была такая же ошибка. В моем случае я построил библиотеку (назовите ее commsLibrary), которая ссылалась на другие библиотеки, включив их в качестве проектов в мое решение. Позже, когда я построил проект и добавил свой commsLibrary, всякий раз, когда я буду строить, я получил файл метаданных не может быть найден ошибка. Поэтому я добавил библиотеки, которые Моя библиотека comms ссылалась на текущий проект, затем он смог построить.


У меня была та же проблема, даже без каких-либо других ошибок, отображаемых в представлении "список ошибок" после "перестроить решение". Однако в представлении "вывод" я увидел ошибку, которая стояла за проблемой:

основная ссылка " C:...\примет вид myproj.dll " не удалось решить, потому что он был построен против ".NETFramework, версия=v4.6.1 " рамки. Это выше, чем в настоящее время целевой платформы ".NETFramework, версия=v4.5"

Как только я исправил это, проблема была решенный.


в моем случае, мне пришлось открыть .файл csproj и добавьте ссылку вручную, например (Microsoft.Увеличение.Тождественность.Хранилище.dll отсутствовала):

<Reference Include="Microsoft.Extensions.Identity.Stores">
  <HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.identity.stores.0.1\lib\netstandard2.0\Microsoft.Extensions.Identity.Stores.dll</HintPath>
</Reference>