Upozornění NuGet NU1512

RestoreForceEvaluate přepsání RestoreLockedMode; Soubor uzamčení balíčků se znovu vyhodnotí a znovu vygeneruje a režim uzamčení bude ignorován.

Problém

Pro obnovení jsou povolené obě RestoreLockedMode možnosti RestoreForceEvaluate , ale tyto možnosti jsou v rozporu:

  • RestoreLockedMode packages.lock.json vyžaduje, aby soubor zůstal beze změny a obnovení selže, pokud se vyřešené závislosti balíčku liší od souboru uzamčení.
  • RestoreForceEvaluate vynutí NuGet znovu vyhodnotit závislosti balíčku a znovu vygenerovat soubor zámku při každém obnovení.

Pokud jsou oba nastavené, RestoreForceEvaluate má přednost: soubor zámku se znovu vyhodnotí a znovu vygeneruje a požadovaný uzamčený režim se ignoruje. Toto upozornění je vyvoláno tak, aby ignorovaný uzamčený režim nebyl tichý.

Řešení

Na základě vašeho záměru povolte pouze jednu z těchto vlastností:

  • Chcete-li zaručit opakovatelné obnovení (například ve scénářích CI/CD), ponechte RestoreLockedMode povolené a zastavte nastavení RestoreForceEvaluate. Například odeberte --force-evaluate možnost (nebo -p:RestoreForceEvaluate=true) z příkazu restore:

    dotnet restore --locked-mode
    
  • Chcete-li úmyslně znovu vyhodnotit plovoucí verze a znovu vygenerovat zámek souboru, ponechte RestoreForceEvaluate povolené a zastavte nastavení RestoreLockedMode:

    dotnet restore --force-evaluate
    

Note

Toto upozornění se ve výchozím nastavení vyvolá od sady .NET 11 SDK (SdkAnalysisLevelhodnota 11.0.100 nebo vyšší). Tuto vlastnost můžete změnit SdkAnalysisLevel tak, aby toto chování ovládla.