Возможно, вы использовали старую версию NuGet или Visual Studio на вашем компьютере, которая использовала старый формат. Другой вариант заключается в том, что у вас есть nuget.config
, который заставляет эту папку пакетов решений быть папкой глобальных пакетов вашего профиля пользователя. Я действительно не рекомендую это.
Возможно, начиная с NuGet 3.0 (Visual Studio 2015), NuGet использует структуру папок tolower(packageid)\tolower(packageversion)\
. Мне лень проверять старые версии, чтобы проверить, что в более ранних версиях использовалось что-то другое. Или, может быть, NuGet всегда использовал один и тот же формат для папки глобальных пакетов, поэтому packages.config
отвечает единственной возможностью. Но я действительно считаю, что нормализация в нижнем регистре была добавлена и не всегда существовала.
проекты, использующие packages.config
, всегда использовали неизмененный формат PackageId.PackageVersion
в пакетах решение папки. Я полагаю, что это было слишком рискованно как серьезное изменение, от которого некоторые клиенты зависят от изменений в папке пакетов решений. Таким образом, если у кого-то возникла ошибочная идея, что он может сэкономить место на диске, сделав так, чтобы все его решения совместно использовали одну и ту же папку пакетов, используя одну и ту же папку для всех решений, а папка, которую они использовали, является папкой глобальных пакетов, то две разные части NuGet, который намеренно использует разные соглашения об именах папок, будет выполнять запись в один и тот же каталог.
Пока вы не находитесь в середине сборки, всегда безопасно удалять папки в любой папке пакетов (глобальные пакеты, как ваш вопрос, или папку с пакетами решений). Если проекту требуется пакет, который был удален, NuGet загрузит его снова, поэтому, если у вас есть квота на загрузку или медленное соединение inte rnet, возможно, будьте внимательны. В противном случае вы можете быть настолько либеральными, удаляя папки, сколько захотите. Просто убедитесь, что удалили всю папку. Есть только один файл, который NuGet ищет при восстановлении, поэтому, если вы удалите другие файлы, но оставите его, NuGet будет считать, что он загружен и извлечен правильно, но ваш компьютер будет вести себя иначе, чем другие машины.