Что такое project.lock.json?
Я выполнил команду , чтобы создать новый проект .NET Core и запускал это из cmd:
dotnet new
dotnet restore
Второй оператор создает project.lock.json
, который содержит много мусора (на самом деле не мусор, а тонны зависимостей, конфигурации и т.д.). Я предполагаю, что эти зависимости - это .NET framework, который разбит на отдельные пакеты NuGet.
Мои вопросы:
- Правильно ли мое предположение?
- Могу ли я сделать приложение более легким, удалив ненужные пакеты/зависимости NuGet?
- Как?
Ответы
Ответ 1
Краткий ответ: project.lock.json
генерируется инструментами .NET при восстановлении пакетов проекта. Вы не должны прикасаться к нему или проверять его на исходный контроль. Отредактируйте project.json
напрямую.
Более длинный ответ: В процессе восстановления пакета (dotnet restore
) NuGet должен анализировать зависимости в вашем проекте, просматривать графики зависимостей и определять, какие пакеты должны быть установлены для вашего проекта и ваши зависимости проекта.
Это нетривиальный объем работы, поэтому результаты кэшируются в project.lock.json
, чтобы сделать последующие восстановления быстрее и эффективнее. Файл блокировки будет восстановлен, если project.json
будет изменен, а dotnet restore
будет выполнен снова.
Ответ 2
Каждый раз так часто в нашей команде, когда кто-то обновляет некоторый nuget, у нас та же проблема, файлы lock.json не обновляются, даже запуская восстановление dotnet, поэтому перед применением последний выбор (удаление их) Я предлагаю запустить grunt из командной строки.
Если это не сработает, удалите все файлы lock.json и запустите восстановление dotnet, это мой любимый выбор;)