NuGet Warning NU1512

RestoreForceEvaluate mengambil alih RestoreLockedMode; file kunci paket akan dievaluasi ulang dan diregenerasi, dan mode terkunci diabaikan.

Issue

Keduanya RestoreLockedMode dan RestoreForceEvaluate diaktifkan untuk pemulihan, tetapi opsi ini bertentangan:

  • RestoreLockedMode mengharuskan packages.lock.json file tetap tidak berubah, dan gagal memulihkan jika dependensi paket yang diselesaikan berbeda dari file kunci.
  • RestoreForceEvaluate memaksa NuGet untuk mengevaluasi kembali dependensi paket dan meregenerasi file kunci pada setiap pemulihan.

Ketika keduanya diatur, RestoreForceEvaluate lebih diutamakan: file kunci dievaluasi ulang dan diregenerasi, dan mode terkunci yang diminta diabaikan. Peringatan ini dinaikkan agar mode terkunci yang diabaikan tidak diam.

Solusi

Aktifkan hanya salah satu properti ini, berdasarkan niat Anda:

  • Untuk menjamin pemulihan yang dapat diulang (misalnya, dalam skenario CI/CD), tetap RestoreLockedMode aktifkan dan hentikan pengaturan RestoreForceEvaluate. Misalnya, hapus --force-evaluate opsi (atau -p:RestoreForceEvaluate=true) dari perintah pemulihan Anda:

    dotnet restore --locked-mode
    
  • Untuk sengaja mengevaluasi ulang versi mengambang dan meregenerasi file kunci, tetap RestoreForceEvaluate aktifkan dan hentikan pengaturan RestoreLockedMode:

    dotnet restore --force-evaluate
    

Note

Peringatan ini dimunculkan secara default dimulai dengan .NET 11 SDK (SdkAnalysisLevel nilai 11.0.100 atau lebih tinggi). Anda dapat mengubah SdkAnalysisLevel properti untuk mengontrol perilaku ini.