Я хочу протестировать базовый класс плагина, напрямую ссылаясь на проект плагина и создавая экземпляр класса плагина. Когда я создаю тестовый проект консольного приложения и добавляю ссылку на проект в проект плагина, я получаю значок предупреждения (желтый треугольник с восклицательным знаком) рядом со ссылкой в списке ссылок.
Когда я вместо этого добавляю ссылку на dll, вывод сборки сборки плагина, я не получаю такого предупреждения. Что могло бы сказать это предупреждение?
.net
mef
project-reference
ProfK
источник
источник
Ответы:
Как уже упоминалось в комментариях к вопросу, причиной могут быть разные версии .NET Framework между проектами. Проверьте свойства нового проекта и убедитесь, что другая версия по умолчанию не используется.
источник
Обнаружена та же проблема с ASP.Net Web App и двумя проектами библиотечного класса, на которые нужно было ссылаться в Web App. У меня не было информации о том, почему сборка не удалась и ссылки были недействительными.
Решение заключалось в том, чтобы все проекты имели одинаковую целевую среду:
В Visual Studio 2015 - щелкните правой кнопкой мыши проект> Свойства> Приложение> Target Framework
Сохранить, очистить и восстановить решение. Ссылки на проект больше не должны отображаться в виде желтых предупреждений, и решение будет скомпилировано.
Мое веб-приложение предназначалось для .Net 4.5, тогда как два других проекта классов зависимых библиотек были нацелены на .Net v4.5.2
источник
Для обоих (или всех) проектов, которые вы хотите использовать вместе:
Щелкните правой кнопкой мыши проект> Свойства> Приложение> Целевой .NET Framework
Убедитесь, что оба (или все) ваши проекты используют одну и ту же версию .NET Framework.
источник
Убедитесь, что все версии одинаковы для каждого проекта, щелкните каждый проект и просмотрите версию здесь. Project> Properties> Application> Target .NET framework.
а. Выберите Инструменты> Диспетчер пакетов Nuget> Тип консоли диспетчера пакетов. Update-Package -Reinstall (если не работает, перейдите к 2.b )
б. ЭТО КРИТИЧНО, НО САМАЯ БОЛЬШАЯ ВОЗМОЖНОСТЬ, КОТОРАЯ БУДЕТ РАБОТАТЬ . Удалите <Target> Возможно с несколькими строками </ Target>, обычно находящиеся в нижней части .csproj.
Сохраните, загрузите и соберите решение.
источник
Переустановите все пакеты во всех проектах текущего решения:
источник
Убедитесь, что у вас есть проекты, ориентированные на одну и ту же версию фреймворка . В большинстве случаев причина заключается в том, что текущий проект (где вы добавляете ссылку на другой проект) указывает на другую версию платформы .net, чем остальные .
источник
Проверьте NETFramework упомянутой библиотеки DLL и проекта, в который вы добавляете DLL. Пример: DLL ==> enabledRuntime version = "v4.0" Project ==> supportRuntime version = "v3.0"
Вы получите значок предупреждения. Решение: сделать согласованность версии dll.
источник
Я столкнулся с этой проблемой при обращении к библиотеке классов .NET Standard 2.0 в консольном приложении .NET Framework 4.7.1. Да, фреймворки разные, но они совместимы (предполагается, что .NET Standard должен сочетаться как с .NET Core, так и с .NET Framework.) Я попытался очистить, перестроить, удалить и прочитать ссылку на проект и т. Д. ... безуспешно , Наконец, выход из Visual Studio и повторное открытие решили проблему.
источник
Прошло много времени с тех пор, как был задан этот вопрос, но если кто-то все еще заинтересован - я недавно столкнулся с подобными иконками. Я компилировал проект C # .net с использованием VS 2008. Я обнаружил, что VS не может найти сборки для этих ссылок. Когда я дважды щелкнул VS, обновил ссылки и удалил значки на некоторых из них [EDIT: которые он мог найти сейчас]. Для оставшихся ссылок мне пришлось скомпилировать соответствующие сборки.
источник
Добавив мои 2 цента к ответу @ kad81,
Перейдите в Visual Studio -> BUILD -> Диспетчер конфигурации.
В раскрывающемся списке «Платформа активных решений» в верхнем правом углу (у меня VS 2012), если это «Смешанные платформы», измените его на соответствующую платформу, основанную на ваших ссылочных сторонних сборках.
Затем в каждом проекте из списка убедитесь, что вы выбрали одну и ту же платформу для всего проекта. (если x86 не существует, выберите «», затем вы можете выбрать «x86».)
Сначала перестройте проекты библиотеки, а затем сделайте ссылки на проекты. Надеюсь это поможет.
источник
Попробуйте закрыть и открыть VS.
Кажется глупым, но после 1 часа следования вышесказанному и нахождения все в порядке. Я перезапустил VS 2017, и проблемы исчезли.
источник
В ядре Asp.net иногда отображается предупреждение, если вы изменяете пространство имен или имя проекта. Чтобы удалить этот вид предупреждений, просто выгрузите проект и загрузите его снова. Если проблема все еще существует, значит вы не можете найти ссылку на сборку.
источник
У меня были эти иконки по другой причине. У нас есть одно большое решение для всех наших проектов (около 100). Я выбрал проекты, которые меня заинтересовали, и нашел новое решение. Однако ссылки, где ссылки на проект вместо ссылок на скомпилированные библиотеки DLL ....
После некоторых исследований я нашел эту ссылку на GitHub, которая объясняет это новое поведение в VS2015.
На странице GitHub они объясняют обходной путь для преобразования ссылок проекта в двоичные ссылки.
источник
Чтобы исправить некоторые не работающие вещи, имеет смысл иногда удалять некоторые библиотеки, как бы это странно не звучало.
В любом случае, я считаю, что проблема слишком широка и может быть вызвана различными факторами. , поэтому хочу поделиться своей ситуацией / решением.
У меня был проект (предложенный заказчиком) с библиотеками Xamarin Forms и Telerik. В основном это было связано с компонентами, библиотеки которых не включены в папку пакетов и не доступны через Nuget (платные).
Весь проект References был «жёлтым», он выглядел ужасно и страшно.
Решение было просто удалить это Telerik ссылку ( в том числе нескольких элементов управления в коде , которые с помощью этого). Сразу после этого все ссылки волшебным образом приобрели свой обычный нормальный серый цвет, и ошибки (в основном) исчезли.
«В основном» - потому что сообщения об ошибке «все вокруг красные» о том, что «элемент нигде не определен» иногда случаются. Это странно и приносит неудобства, но я все еще могу скомпилировать и запустить проект (ы): просто нужно очистить решение, перезапустить Visual Studio, немного помолиться, почистить снова, удалить папки obj / bin, перезапустить снова, и это работает хорошо.
Ключевым моментом является удаление не доступных ссылок на библиотеки , так как сообщения об ошибках говорят совсем о другом. (Например, что-то вроде «Xamarin.Build.Download.XamarinDownloadArchives не найден или не может найти что-то» и т. Д., Но это может означать, что у вас нет доступных ссылок.
Затем удалите папку пакетов, перезагрузите / заново откройте проект / решение, перейдите в «Управление пакетами Nuget» и нажмите кнопку «Восстановить».
источник
Используя Visual Studio 2019 со всеми проектами, ориентированными на .Net Core 3.1, было решено:
источник
Я также столкнулся с той же проблемой, но мой случай немного отличался от описанного выше. Я пытался открыть проект, созданный на другом компьютере. Я обнаружил, что путь к папке пакета не обновляется, когда вы добавляете ссылку, поэтому перезапуск VS, изменение версии .NET или любая упомянутая рекомендация не решают проблему. Я открыл файл csproj в notepad ++ и исправил все относительные пути к папке пакетов. Затем; все предупреждения ушли. Надеюсь, поможет.
источник
в VS 2017 сделать чистку, а затем построить
источник
Спасибо всем за помощь. Вот пример того, как я исправил свою проблему:
Щелкните правой кнопкой мыши по вашему проекту> Свойства
Под Приложением измените целевой Framework. В моем случае ImageSharp использовал .Net 4.6.1. Вы можете найти это в ваших packages.config.
Перейти к ссылкам вашего проекта. Вы заметите, что у SixLabors есть желтый треугольник. Вы должны обновить пакет NuGet.
Щелкните правой кнопкой мыши на References> Управление пакетами NuGet.
Обновите SixLabors.
У вас могут быть небольшие обновления кода (см. Ниже), но это решило мою проблему.
Конвертировать ImageSharp.Image в ImageSharp.PixelFormats.Rgba32?
источник
В Visual Studio 2019 одним из моих целевых каркасов проектов было ядро .net, но оно ссылалось на другой проект, целевой платформой которого был стандарт .net. Я изменил все проекты, ссылаясь на стандарт .net, и значки исчезли. Чтобы увидеть, что представляет собой ваш проект, щелкните его правой кнопкой мыши, выберите «Свойства» и посмотрите на целевую платформу. Вы также можете нормально щелкнуть сам проект и посмотреть тег <TargetFramework> в <PropertyGroup>
источник
В многопроектном решении, если все остальное не удалось ... В проекте запуска, проверьте. Зависимости-> Сборки и посмотрите, есть ли ошибочный проект, на который есть ссылка. Удалите это и восстановите.
источник