program story

project.lock.json은 무엇입니까?

inputbox 2020. 10. 30. 08:00
반응형

project.lock.json은 무엇입니까?


지침따라 새 .NET Core 프로젝트를 만들고 cmd에서 실행했습니다.

dotnet new
dotnet restore

두 번째 문은 project.lock.json많은 쓰레기를 포함합니다 (실제로 쓰레기가 아니라 많은 종속성, 구성 등). 이러한 종속성은 별도의 NuGet 패키지로 분류 된 .NET 프레임 워크라고 가정합니다.

내 질문 :

  1. 내 가정이 맞습니까?
  2. 필요하지 않은 NuGet 패키지 / 종속성을 제거하여 애플리케이션을 더 가볍게 만들 수 있습니까?
  3. 어떻게?

업데이트 : .NET Standard 프로젝트의 기본 프로젝트 파일로 project.json대체되었습니다 .csproj. 이 질문은 NuGet 4.0PackageReference가 도입되기 전의 이전 시스템을 참조합니다 .

여전히 가끔 project.lock.json빌드 프로세스의 아티팩트로 볼 수 있지만 무시해야합니다. .NET Standard / .NET Core 프로젝트가 의존하는 NuGet 패키지 관리는 항상 다음 중 하나에 의해 수행되어야합니다.

  • .csproj직접 파일 편집
  • 은 Using 후에 .NET CLI ( dotnet add package등)
  • Visual Studio를 사용하는 경우 패키지 관리자 GUI 사용

후손에 대한 이전 답변 : project.lock.json프로젝트의 패키지를 복원 할 때 .NET 도구에서 생성됩니다. 그것을 만지거나 소스 제어에 체크인해서는 안됩니다. project.json직접 편집하십시오 .

패키지 복원 프로세스 ( dotnet restore) 중에 NuGet은 프로젝트의 종속성을 분석 하고 종속성 그래프를 살펴보고 프로젝트 및 프로젝트의 종속성에 대해 어떤 패키지를 설치해야하는지 파악해야합니다.

이는 사소한 작업량이므로 project.lock.json후속 복원을 더 빠르고 효율적으로 수행 할 수 있도록 결과가 캐시됩니다 . 잠금 파일 project.json이 수정 되면 다시 생성 dotnet restore되고 다시 실행됩니다.


우리 팀에서 누군가가 약간의 너겟을 업데이트 할 때마다 같은 문제가 발생합니다. lock.json 파일이 업데이트되지 않고 dotnet 복원을 실행해도 마지막 선택을 적용 (삭제)하기 전에 grunt를 실행하는 것이 좋습니다. 명령 줄에서. 그래도 작동하지 않으면 모든 lock.json 파일을 삭제하고 dotnet restore를 실행하십시오 . 이것이 제가 가장 좋아하는 선택입니다.)

참고 URL : https://stackoverflow.com/questions/38065611/what-is-project-lock-json

반응형