NuGet Uyarısı NU1512

RestoreForceEvaluate geçersiz kılmaları RestoreLockedMode; packages lock dosyası yeniden değerlendirilir ve yeniden oluşturulur ve kilitli mod yoksayılır.

Issue

Geri yükleme için hem hem RestoreForceEvaluate de RestoreLockedMode etkinleştirilir, ancak bu seçenekler çelişkilidir:

  • RestoreLockedMode packages.lock.json dosyanın değişmeden kalmasını gerektirir ve çözümlenen paket bağımlılıkları kilit dosyasından farklıysa geri yükleme başarısız olur.
  • RestoreForceEvaluate NuGet'i paket bağımlılıklarını yeniden değerlendirmeye ve her geri yüklemede kilit dosyasını yeniden üretmeye zorlar.

Her ikisi de ayarlandığında öncelik RestoreForceEvaluate kazanır: kilit dosyası yeniden değerlendirilir ve yeniden oluşturulur ve istenen kilitli mod yoksayılır. Bu uyarı, yoksayılan kilitli modun sessiz olmaması için tetiklenir.

Çözüm

Amacınıza göre bu özelliklerden yalnızca birini etkinleştirin:

  • Yinelenebilir geri yüklemeleri garanti etmek için (örneğin, CI/CD senaryolarında), ayarını etkin tutun RestoreLockedMode ve durdurun RestoreForceEvaluate. Örneğin, geri yükleme komutunuzdan --force-evaluate (veya -p:RestoreForceEvaluate=true) seçeneğini kaldırın:

    dotnet restore --locked-mode
    
  • Kayan sürümleri kasıtlı olarak yeniden değerlendirmek ve kilit dosyasını yeniden oluşturmak için etkin tutun RestoreForceEvaluate ve ayarını RestoreLockedModedurdurun:

    dotnet restore --force-evaluate
    

Note

Bu uyarı, .NET 11 SDK'sı (SdkAnalysisLeveldeğer 11.0.100 veya üzeri) ile başlayarak varsayılan olarak tetiklenir. Bu davranışı denetlemek için özelliğini değiştirebilirsiniz SdkAnalysisLevel .