Пакет Nuget установлен, но ссылки не разрешены
У меня есть мультипроектное решение с пакетами Prism Nuget, установленными в нескольких проектах. Затем я попытался добавить пакет расширений Prism Mef в один из проектов с помощью пользовательского интерфейса диспетчера пакетов Nuget (я уже добавил его в один из других проектов).
В первый раз, когда я попытался добавить пакет, он не смог установить одну из зависимостей, никакой конкретной причины ошибки, просто "не удалось". Итак, я установил его второй раз, все вроде бы нормально, ошибок не сообщалось, но некоторые ссылки не помогли.
Итак, я удалил пакет и все зависимости и установил его снова. Снова все оказалось нормально, но больше ссылок не разрешают.
Я пытался удалить и установить пакет несколько раз, но теперь каждый раз получаю один и тот же результат.
У меня была эта проблема много раз, и я знаю, что она не специфична для пакета Prism, так как у меня была она с множеством разных пакетов.
Я думаю, что это просто серьезная ошибка с Nuget, но я надеюсь, что кто-нибудь найдет простой способ исправить это. Я думаю, что обычно у меня больше успеха с консолью Nuget, но я считаю, что ей нужно больше усилий.
Я провел поиск в Интернете и не нашел хорошего объяснения причины проблемы или способа ее решения.
Кто-то на работе полностью отказывается иметь какое-либо отношение к Нюгетту, поскольку у него так много таких проблем, но я полон решимости заставить его работать!
10 ответов
Я просто закрыл Visual Studio и снова открыл его, и ссылки разрешены...!
В консоли диспетчера пакетов выполните следующую команду:
Update-Package -reinstall
Это переустанавливает каждый пакет nuget в этом проекте, который должен разрешать любые пропущенные ссылки.
Если вы знаете, что вам не хватает конкретной ссылки:
Update-Package -reinstall <Package-Name>
Вы должны следовать этой процедуре.
- Update-пакет
- Update-Package -reinstall
- Перезапустите Visual Studio.
Возможно, вы захотите сравнить версию пакета.NET с вашим проектом.
У меня был экземпляр, где мой проект был.NET 4.6.1, и пакет, который я пытался установить, использовал версию 4.6.2. После обновления моего проекта до той же версии.NET, ссылка появилась.
Удалить все <assemblyBinding>
ссылки из вашего файла.config, затем выполните эту команду из диспетчера пакетов Nuget:
Get-Project -All | Add-BindingRedirect
Вот как я это исправил.
Я работал над устаревшим проектом .NET framework (используя
<Reference Include...
скорее, чем
PackageReference
). В
.dll
s ссылались на относительный путь, который не был разрешен.
Исправлено изменением на абсолютные пути, построением, а затем возвращением к исходным относительным путям.
Например:
<Reference Include="My.Package">
<HintPath>..\..\packages\My.Package.dll</HintPath>
</Reference>
Изменился на:
<Reference Include="My.Package">
<HintPath>C:\Users\will\Documents\MySolution\packages\My.Package.dll</HintPath>
</Reference>
Затем построили и изменили обратно на относительный путь, и сборка все еще работала.
Я недавно столкнулся с этой ошибкой на Visual Studio 2012, решение для меня было удалить файл.nupkg из кеша Nuget. Расположение кеша Nuget можно найти в настройках Nuget> general > browse.
Примечание: я не очистил кеш, я просто удалил определенный файл из каталога кеша и переустановил пакет nuget.
В нашем случае на одной машине VS хранил старую версию зависимости, поэтому ссылки на недавно добавленные методы в зависимости не разрешались (даже когда менеджер пакетов сообщал об установленной последней версии). Решение состояло в том, чтобы перезапустить визуал после удаления зависимости, а затем установить снова.
Я перепробовал все остальные варианты, но мою проблему ничего не решило. Что решило проблему, так это просмотр информации о пакете на веб-сайте nuget и проверка того, с какими версиями .Net Framework работают разные версии пакета.
К сожалению, в последней стабильной версии пакета не была указана моя версия .Net Framework, поэтому я удалил ее и установил вторую последнюю версию, в которой была указана моя версия .Net Framework, и все работало как положено.
Просто, но неожиданно (по крайней мере для меня).
Для меня перестройка проекта решила проблему. Щелкните правой кнопкой мыши Project -> Rebuild.