.net - ¿Qué es project.lock.json?
.net-core project.json (2)
Seguí las instruction para crear un nuevo proyecto .NET Core y ejecuté esto desde cmd:
dotnet new
dotnet restore
La segunda declaración crea
project.lock.json
que contiene mucha basura (no realmente basura sino toneladas de dependencias, configuraciones, etc.).
Supongo que estas dependencias son .NET framework que se divide en paquetes NuGet separados.
Mis preguntas:
- ¿Es correcta mi suposición?
- ¿Puedo hacer que mi aplicación sea más ligera eliminando los paquetes / dependencias NuGet no necesarios?
- ¿Cómo?
De vez en cuando, en nuestro equipo, cuando alguien actualiza algunos nuget, tenemos el mismo problema, los archivos lock.json no se actualizan, incluso ejecutan restauración dotnet , antes de aplicar la última opción (eliminarlos), sugiero ejecutar grunt desde su línea de comando. Si eso no funciona, elimine todos los archivos lock.json y ejecute la restauración dotnet , esta es mi opción favorita;)
Actualización
:
project.json
ha sido reemplazado por
.csproj
como el archivo de proyecto principal para proyectos .NET Standard.
Esta pregunta se refiere al antiguo sistema antes de la introducción de
PackageReference en NuGet 4.0
.
Es posible que de vez en cuando vea
project.lock.json
como un artefacto del proceso de compilación, pero debe ignorarse.
La administración de los paquetes NuGet de los que depende su proyecto .NET Standard / .NET Core siempre debe hacerse por cualquiera
-
Edición del archivo
.csproj
directamente -
Uso de la
CLI dotnet
(
dotnet add package
, etc.) - Usar la GUI de Package Manager si está usando Visual Studio
Antigua respuesta
para la posteridad:
project.lock.json
es generado por las herramientas .NET cuando restaura los paquetes del proyecto.
No debe tocarlo ni marcarlo en el control de fuente.
Edite
project.json
directamente.
Durante el proceso de restauración de paquetes (
dotnet restore
dotnet), NuGet tiene que analizar las dependencias en su proyecto, recorrer
sus
gráficos de dependencia y descubrir qué paquetes deben instalarse para su proyecto y las dependencias de su proyecto.
Esta es una cantidad de trabajo no trivial, por lo que los resultados se almacenan en caché en
project.lock.json
para que las restauraciones posteriores sean más rápidas y más eficientes.
El archivo de bloqueo se regenerará si
project.json
se modifica y la
dotnet restore
se ejecuta nuevamente.