Почему я получаю значок предупреждения, когда добавляю ссылку на проект плагина MEF?

Я хочу протестировать основной класс плагина, напрямую ссылаясь на проект плагина и создавая экземпляр класса плагина. Когда я создаю тестовый проект Console App и добавляю ссылку на проект в проект плагина, я получаю значок предупреждения (желтый треугольник с восклицательным знаком) рядом со ссылкой в ​​списке ссылок.

Когда я вместо этого добавляю ссылку на DLL, вывод сборки сборки плагина, я не получаю такого предупреждения. Что могло бы предупредить это предупреждение?

Ответ 1

Как упоминалось в комментариях к вопросу, разные версии .NET Framework между проектами могут вызвать это. Проверьте свои новые свойства проекта, чтобы не использовать другую версию по умолчанию.

Ответ 2

Обнаружена та же проблема с веб-приложением ASP.Net и двумя проектами классов библиотек, которые необходимо указать в веб-приложении. У меня не было информации о том, почему сборка завершилась неудачно, и ссылки были недействительными.

Решение заключалось в том, чтобы все проекты имели одну и ту же целевую структуру:

В Visual Studio 2015 - Щелкните правой кнопкой мыши проект > Свойствa > Приложение > Целевая структура

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

В моем веб-приложении был нацелен на .Net 4.5, тогда как другие два проекта зависимых классов библиотек, ориентированных на .Net v4.5.2

Ответ 3

Для обоих (или всех) проектов, которые вы хотите использовать вместе:

Щелкните правой кнопкой мыши проект > Свойствa > Приложение > Целевая платформа .NET

Убедитесь, что обе (или все) ваши проекты используют одну и ту же версию платформы .NET.

Ответ 4

  1. Убедитесь, что все версии одинаковы для каждого проекта, щелкните каждый проект и просмотрите версию здесь. Project> Properties> Application> Target.NET framework.
  2. а. Перейдите в Инструменты> Диспетчер пакетов Nuget> Тип консоли диспетчера пакетов Update-Package -Reinstall (если не работает, перейдите к 2.b)

    б. Удалите <Target> Возможно с несколькими строками </Target>, обычно находящиеся в нижней части .csproj.

  3. Сохраните, загрузите и соберите решение.

Ответ 5

Переустановите все пакеты во всех проектах текущего решения:

Update-Package -Reinstall

Ответ 6

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

Ответ 7

Проверьте NETFramework указанной dll и Project, где вы добавляете DLL. Пример: DLL == > supportedRuntime version = "v4.0" Project == > supportedRuntime version = "v3.0"

Появится предупреждающий значок. Решение. Консоль версии dll.

Ответ 8

Прошло много времени с тех пор, как этот вопрос был задан, но если кому-то все еще интересно - я недавно столкнулся с похожими значками. Я составлял проект С#.net, используя VS 2008. Я нашел, что VS не удалось найти сборки для этих ссылок. Когда я дважды щелкнул VS, обновил ссылки и удалил значки на некоторых из них [EDIT: что он мог НАЧАТЬ найти]. Для остальных ссылок мне пришлось скомпилировать соответствующие сборки.

Ответ 9

Я столкнулся с этой проблемой при обращении к библиотеке классов .NET Standard 2.0 в консольном приложении .NET Framework 4.7.1. Да, фреймворки разные, но они совместимы (предполагается, что .NET Standard должен сочетаться как с .NET Core, так и с .NET Framework.) Я пытался очистить, перестроить, удалить и прочитать ссылку на проект и т.д.... безуспешно, Наконец, выход из Visual Studio и повторное открытие решили проблему.

Ответ 10

Добавление моих 2 цента к ответу @kad81,

Перейдите в Visual Studio → BUILD → Configuration Manager

В "Активной платформе решения" выпадаете в верхнем правом углу (шахта VS 2012), если это "Смешанные платформы", замените ее на соответствующую платформу на основе ваших ссылочных сторонних сборок.

Затем в каждом из проектов в списке убедитесь, что вы выбрали одну платформу для всего проекта. (если x86 не существует, затем выберите ", затем вы можете выбрать" x86".)

Сначала перестройте проекты библиотеки, а затем ссылайтесь на проекты. Надеюсь, это поможет.

Ответ 11

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

Ответ 12

У меня были эти значки по другой причине. У нас есть одно большое решение для всех наших проектов (около 100). Я сделал отбор проектов, которые меня интересовали, и сделал новое решение. Однако ссылки, где ссылки проекта вместо ссылок на скомпилированные dll's....

После некоторого исследования я нашел эта ссылка на GitHub, в котором объясняется это новое поведение в VS2015.

На странице GitHub они объясняют обходной путь для преобразования ссылок на ссылки на двоичные ссылки.

Ответ 13

Чтобы исправить некоторые не работающие вещи, имеет смысл иногда удалять некоторые библиотеки, как бы это странно не звучало.

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

У меня был проект (предложенный заказчиком) с библиотеками Xamarin Forms и Telerik. В основном это было связано с компонентами, библиотеки которых не включены в папку пакетов и не доступны через Nuget (платные).

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

Решением было просто удалить те ссылки Telerik (включая несколько элементов управления в коде, который их использовал). Сразу после этого все ссылки волшебным образом приобрели свой обычный нормальный серый цвет, и ошибки (в основном) исчезли.

"В основном" - потому что сообщения об ошибке "все вокруг красные" о том, что "элемент нигде не определен" иногда случаются. Это странно и доставляет неудобства, но я все еще могу скомпилировать и запустить проект (ы): просто нужно очистить решение, перезапустить Visual Studio, немного помолиться, почистить снова, удалить папки obj/bin, перезапустить снова, и это работает хорошо.

Ключевым моментом является удаление не доступных ссылок на библиотеки, так как сообщения об ошибках говорят совсем о другом. (Например, что-то вроде "Xamarin.Build.Download.XamarinDownloadArchives не найден или что-то не может найти" и т.д., Но это может означать, что у вас нет доступных ссылок.

Затем удалите папку пакетов, перезагрузите/заново откройте проект/решение, перейдите в "Управление пакетами Nuget" и нажмите кнопку "Восстановить".

Ответ 14

Попробуйте закрыть и открыть VS.

Кажется глупым, но через 1 час после вышеизложенного и найти все в порядке. Я перезапустил VS 2017, и проблемы исчезли.

Ответ 15

Я также столкнулся с той же проблемой, но мой случай немного отличался от описанного выше. Я пытался открыть проект, созданный на другом компьютере. Я обнаружил, что путь к папке пакета не обновляется, когда вы добавляете ссылку, поэтому перезапуск VS, изменение версии .NET или любые упомянутые рекомендации не решают проблему. Я открыл файл csproj в notepad++ и исправил все относительные пути к папке с пакетами. Затем; все предупреждения ушли. Надеюсь, поможет.

Ответ 16

в VS 2017 сделать чистку, а затем построить