Подтвердить что ты не робот

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

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

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

Error   CS0006  Metadata file 'C:\Users\...\source\Database\bin\Debug\DataAccessLayer.dll' could not be found   Logic   C:\Users\...\source\Logic\CSC   1   Active

Error   CS0006  Metadata file 'C:\Users\...\source\Logic\bin\Debug\Logic.dll' could not be found    PTS2-MVC    C:\Users\...\source\PTS2-MVC\CSC    1   Active

Error   CS0006  Metadata file 'C:\Users\...\source\PTS2-MVC\bin\PTS2-MVC.dll' could not be found    PTS2-MVC.Tests  C:\Users\...\source\PTS2-MVC.Tests\CSC  1   Active

Когда я захожу в папку bin\debug этой библиотеки DLL, я вижу, что она пуста, а другая библиотека DLL, в которой я не получаю сообщение об ошибке, не пуста. Но я не знаю, как это исправить или что я сделал, чтобы это произошло.

Наиболее распространенный ответ - перейти к свойствам решения, перейти к настройке и снять флажок → применить → проверить и применить снова, но это не сработало

4b9b3361

Ответ 1

Проблема заключалась в том, что у меня были другие обычные сообщения об ошибках в моем проекте, и, по-видимому, после того, как я их исправил, и когда я СНОВА очистил и собрал свой проект, все .dll были успешными.

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

Ответ 2

Шаги по исправлению этой ошибки: Файл .dll файла MetaData не найден.

  • Очистить все проекты.

  • Выгрузить все проекты.

  • Обновить все проекты.

  • ReBuild Solution.

Тогда проблема решена.

Ответ 3

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

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

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

  • Закройте решение
  • Удалить папку bin
  • Удалить все папки obj
  • Открыть решение и построить

Ответ 4

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

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

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

Ответ 8

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

например:

/Repo/Project Name/src

должен быть

/Repo/ProjectName/src

Ответ 9

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

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

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

Ответ 10

В моем случае мне пришлось открыть файл.csproj и вручную добавить ссылку, например, так (Microsoft.Extensions.Identity.Stores.dll отсутствовал):

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

Ответ 11

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

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

Ответ 12

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

Ответ 13

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

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

Невозможно гарантировать, что это сработает для кого-то еще, но

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

Ответ 14

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

Ответ 15

Закройте Visual Studio, найдите файл решения .suo, удалите его, снова откройте Visual Studio.

Ответ 16

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

Ответ 17

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

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

Обычно затрагиваются следующие файлы: AssemblyInfo.cs, .sln a Properties > Application > Assembly Имя Properties > Application > Assembly и Пространство имен по умолчанию. Убедитесь, что обновили их с новым именем.

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

Ответ 18

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

Ответ 19

Переключение конфигурации с релиза - любой процессор на релиз - смешанные платформы решили мою проблему. Я подозреваю, что проект использует библиотеки классов, которые используют 32-битные COM-объекты.

Ответ 20

Столкнувшись с таким количеством неприятностей, вот решение, которое я нашел.

  1. откройте папку вашего проекта.
  2. find Your_Project_Name.csproj [Файл проекта Visual С# (.csproj)]
  3. откройте этот файл в любом текстовом редакторе и найдите отсутствующий файл ItemGroup.

    <ItemGroup> <None Include="..."/> </ItemGroup>

  4. удалите ItemGroup и снова откройте ваш проект и соберите

  5. Если эта ссылка важна для вас, добавьте еще раз.

Ответ 21

У меня есть ссылки на другие файлы .csproj в моем решении, и после обновления до .NET Core 2.2 я как-то начал получать эту ошибку. Исправлено это с включением Показать скрытые файлы в проводнике (.csproj файлы скрыты и по какой-то причине VS не может найти их из-за этого)

Ответ 22

Я была такая же проблема. Моя проблема была в том, что кто-то в команде переместил папку класса, и проект искал ее.

Для меня было 44 ошибки; 43 оканчивался на .dll (поиск зависимости), а первый в списке ошибок заканчивался на .cs (поиск фактического класса). Я пытался очистить-собрать и очистить, выгрузить, перезагрузить, собрать, но ничего не получалось. Я закончил тем, что нашел класс в проекте и просто удалил его, так как он все равно показывался как недоступный, после чего последовала чистая сборка.

Это помогло мне! Надеюсь это поможет.

Ответ 23

У меня было 2 файла (и 2 класса) в одном проекте с тем же именем.

Ответ 24

В моем случае я удалил один файл прямо из git-меню team explorer, которое вызывало эту проблему. Когда я проверял обозреватель решений, он все еще отображал удаленный файл как файл без ссылок. Когда я удалил этот файл из обозревателя решений, я смог успешно построить проект.

Ответ 25

Для меня то, что сработало, было:

Удалите, а затем переустановите указанный пакет Nuget, в котором произошла ошибка.

Ответ 26

У меня была такая же проблема, и я попытался решения из файла метаданных .dll не удалось найти

но ничего из этого не сработало.

Таким образом, после проб и ошибок я исправил это, выгрузив и перезагрузив проект, выполнив это, сбросив файл конфигурации и исправив проблему.

Ответ 27

В моем случае я запустил тесты и получил ошибку CS0006. Оказалось, что я запускаю тесты в режиме Release. Переход в режим отладки исправил эту ошибку.

Ответ 28

Что сработало для меня:

Консоль диспетчера пакетов (Visual Studio 2019 Comunity):

Install-Package NuGet.CommandLine
nuget locals all -clear

Восстановите решение.