.Net Core и NuGet
I установил ядро .net с этого сайта. Игра с ним привела к ряду связанных вопросов управления пакетами:
- Команда
dotnet restore
приступила к установке пакетов NuGet ядра .net. Где были установлены эти пакеты? Не была создана новая папка.
-
dotnet restore
для минимального примера "hello world" требуется около ста пакетов NuGet, где 99%, по-видимому, не имеют отношения к приложению "hello world". Конечно, родной сборник .net удалит все, что не нужно, - но я ожидал, что restore
также захватил бы очень мало (три или четыре пакета, а не сто). Почему это поведение?
- Я создал второй проект "привет мир" и снова побежал
dotnet restore
. На этот раз пакеты не были установлены вообще. Кажется, все пакеты, установленные в первый раз, вошли в какое-то глобальное местоположение для совместного использования. Я думал, что Net Core так не работает. Я думал, что проекты .Net Core сохраняют все свои зависимости локально. Единственной картой, на которую я нацелился, был dnxcore50
. Почему это поведение?
- Я хотел бы "удалить" все эти глобальные пакеты и повторить попытку (только для учебных целей). Как это может быть достигнуто? Помните, что, как указано в вопросе №1, я не знаю, где были установлены все эти файлы.
- Почти все пакеты, установленные с помощью команды
restore
, были указаны как бета-версии. Странно. Я думал, что .Net Core был в RC1, а не в бета-версии. Смущает это. Почему это поведение?
Мне также интересно, какая документация могла/объяснила бы мне все это. Я пробовал поиск по каждому из этих вопросов и ничего не нашел (возможно, просто ужасно google-fu?).
Ответы
Ответ 1
Обновление:
- Пакеты nuget устанавливаются в глобальном масштабе. По умолчанию это было.. \Users\[YourUserFolder] \. Dnx\packages, но, похоже, оно было изменено на.. \Users\[YourUserFolder] \. Nuget\packages
В NuGet 3+ вы можете использовать следующую команду NuGet CLI, чтобы получить местоположение папки глобальных пакетов
nuget locals global-packages -list
Ознакомьтесь с приведенными ниже ссылками для получения дополнительной информации о NuGet
-
Шаблон ASP.Net по умолчанию имеет так много пакетов. Поскольку вы пытались в первый раз, он попытался получить все эти 100 пакетов.
-
У вас уже были эти пакеты в ваших глобальных местоположениях nuget, он пропустил восстановление.
-
Удалить все содержимое в папке пакетов (местоположение указано в 1)
-
Некоторые из бета-пакетов есть. Вы можете перейти к файлу project.json(доступному под корнем сети) и поиграть с разделом зависимостей.
Ответ 2
Я только выяснил, что существует другое место для пакетов NuGet, используемых в основных проектах .NET. Его расположение:
C:\Users\[User]\.nuget\packages
Я думаю, что это место содержит регулярные пакеты .NET Framework.
Обновление: благодаря brappleye3, здесь ссылка к документации по восстановлению dotnet.