Желтый значок предостережения / символ ссылки на сборку в обозревателе решений
Я использую NuGet для управления зависимостями.
Я создал свежий Git-клон своего решения и заметил проблемы со ссылками на сборки.
Я включил Восстановление пакета и проверил настройки, как предложено здесь, но у меня все еще есть эти желтые значки предостережения на различных ссылках сборки:
Например, я ранее добавил AutoMapper через NuGet, так почему он здесь не работает, и почему он не отображается в моем packages.config
:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="bootstrap" version="3.0.0" targetFramework="net45" />
<package id="EntityFramework" version="6.1.1" targetFramework="net45" />
<package id="jQuery" version="1.10.2" targetFramework="net45" />
<package id="Modernizr" version="2.6.2" targetFramework="net45" />
</packages>
3 ответа
Я вручную пошел и удалил все ссылки с желтой отметкой рядом с ними, а затем добавил их одну за другой. Таким образом, они начали появляться в packages.config
тоже.
Я думаю, что причина, по которой они не показывались в packages.config
ранее это было связано с тем, что я включил опцию [Восстановить пакеты nuget] гораздо позже в разработке. Если бы я сделал это, как только я начал свою работу, я думаю, что они появились бы в packages.config
,
PS. Я воспользовался поиском на веб-сайте nuget, чтобы выяснить, был ли пакет доступен в nuget или это была сборка фреймворка.
Обычно это означает, что ссылка в вашем проекте относится к сборке, которую нельзя найти на диске. Чтобы исправить эту проблему, самое прямое решение состоит в том, чтобы отметить, какие ссылки существуют, удалить их, а затем повторно добавить их. Поскольку вы используете NuGet для управления зависимостями, ваша работа намного проще, вам просто необходимо:
- Удалить все пакеты NuGet (используя "Диспетчер пакетов")
- Удалите все устаревшие ссылки на сборки по всему решению
- Повторно добавьте пакеты NuGet во все проекты, которые в них нуждаются (снова с помощью диспетчера пакетов)
Судя по вашему описанию, звучит так, как будто в некоторых проектах не было добавлено пакетов NuGet, и, возможно, сборки были "перекрестно ссылаются" разработчиком из папки пакетов NuGet. Это ошибка. Вместо этого пакеты NuGet должны быть добавлены во все проекты, которые зависят от пакетов. (Например, вы никогда не должны вручную добавлять ссылку на сборку в AutoMapper, поскольку она управляется NuGet для вас.)
Иногда возникает ошибка, когда они появляются до выборки nuget, и выбор ссылочного узла в обозревателе решений приводит к тому, что глиф оверлея (желтый предупреждающий символ) удаляется сам (это означает, что ссылка была разрешена после загрузки, обычно путем "восстановления пакета"). ".)
Чаще всего это вызвано тем, что авторы проектов создают неправильные / прямые ссылки на сборки в нестандартных местоположениях, поэтому восстановление пакета не устранит проблемы со ссылками, а ссылки обычно ломаются после обновления пакета.
НТН
Вам необходимо переустановить все пакеты в проекте, используя:
Update-Package -ProjectName MyProject -Reinstall
В консоли диспетчера пакетов выберите проект по умолчанию
затем
Update-Package -reinstall