NuGet 경고 NU1512

RestoreForceEvaluate는 RestoreLockedMode를 재정의합니다. 패키지 잠금 파일은 다시 평가되고 다시 생성되며 잠긴 모드는 무시됩니다.

Issue

RestoreForceEvaluate 둘 다 RestoreLockedMode 복원에 사용할 수 있지만 이러한 옵션은 모순됩니다.

  • RestoreLockedMode 에서는 packages.lock.json 파일이 변경되지 않은 상태로 유지되어야 하며 확인된 패키지 종속성이 잠금 파일과 다른 경우 복원에 실패합니다.
  • RestoreForceEvaluate NuGet이 패키지 종속성을 다시 평가하고 모든 복원에서 잠금 파일을 다시 생성하도록 합니다.

둘 다 설정 RestoreForceEvaluate 되면 잠금 파일이 다시 평가되고 다시 생성되고 요청된 잠금 모드가 무시됩니다. 이 경고는 무시된 잠긴 모드가 자동으로 수행되지 않도록 발생합니다.

해결 방법

의도에 따라 다음 속성 중 하나만 사용하도록 설정합니다.

  • 반복 가능한 복원(예: CI/CD 시나리오)을 보장하려면 계속 RestoreLockedMode 사용하도록 설정하고 설정을 RestoreForceEvaluate중지합니다. 예를 들어 복원 명령에서 옵션(또는-p:RestoreForceEvaluate=true)을 제거 --force-evaluate 합니다.

    dotnet restore --locked-mode
    
  • 의도적으로 부동 버전을 다시 평가하고 잠금 파일을 다시 생성하려면 계속 RestoreForceEvaluate 사용하도록 설정하고 설정을 RestoreLockedMode중지합니다.

    dotnet restore --force-evaluate
    

메모

이 경고는 기본적으로 .NET 11 SDK(SdkAnalysisLevel11.0.100 이상)부터 발생합니다. 이 동작을 SdkAnalysisLevel 제어하도록 속성을 변경할 수 있습니다.