По-видимому, вы не изменили версию пакета, когда изменили код и упаковали снова.NuGet спроектирован так, что идентификатор / версия пакета создает неизменный пакет.Это означает, что можно загрузить пакет, скажем, Newtonsoft.Json 12.0.1 с nuget.org только один раз, и каждый раз, когда вы используете этот пакет в любом проекте на одном компьютере, вы можете повторно использовать одну и ту же загрузку, вместо того, чтобызагружайте его каждый раз, когда вы восстанавливаете / собираете проект.
Это вызывает проблемы у некоторых людей, когда они пытаются протестировать свои пакеты.Одним из вариантов является использование Semantic Versioning и использование 1.0.1-preview.1
, 1.0.1-preview.2
, поэтому каждая сборка проекта имеет уникальный номер версии.Кроме того, или вместо этого, вы можете использовать nuget.config
, чтобы установить globalPackagesFolder
в другое место, которое очищается при каждом изменении пакета.Если вы удалите «кеш», он не сможет повторно использовать старое содержимое.Но это работает, только если вы контролируете машины, которые используют пакет.После того, как вы опубликуете пакет, где его может использовать кто-либо другой, у вас возникнут проблемы, если вы измените его содержимое, поэтому nuget.org не позволяет удалять пакеты, а только выводить их из списка.
Однако возможен и другой вариант.Решение состоит в том, чтобы просто не использовать пакеты и просто использовать ссылки на проекты.Некоторые люди ошибочно полагают, что если у вас есть два пакета, один из которых зависит от другого, им нужно использовать ссылки на пакеты, чтобы убедиться, что потоки информации о зависимостях NuGet.Это не правильно.Если вы упакуете цели пакета MSBuild (настоятельно рекомендуется и опция по умолчанию для проектов в стиле SDK), NuGet всегда преобразует ссылки на проекты в зависимости NuGet.nuget pack
преобразует ссылки на проекты в зависимости, когда другой проект также имеет свой собственный файл nuspec
.Когда вы тестируете свой проект со ссылками на проект, вам никогда не придется беспокоиться о неизменяемых пакетах.Просто соберите, когда он будет готов, но он не нужен для тестирования.