NuGet-waarschuwing NU1512

RestoreForceEvaluate overschrijft RestoreLockedMode; het pakketvergrendelingsbestand wordt opnieuw geëvalueerd en opnieuw gegenereerd en de vergrendelde modus wordt genegeerd.

Probleem

Beide RestoreLockedMode en RestoreForceEvaluate zijn ingeschakeld voor de herstelbewerking, maar deze opties zijn tegenstrijdig:

  • RestoreLockedMode vereist dat het packages.lock.json bestand ongewijzigd blijft en de herstelbewerking mislukt als de opgeloste pakketafhankelijkheden verschillen van het vergrendelingsbestand.
  • RestoreForceEvaluate dwingt NuGet om de pakketafhankelijkheden opnieuw te evalueren en het vergrendelingsbestand opnieuw te genereren bij elke herstelbewerking.

Wanneer beide zijn ingesteld, RestoreForceEvaluate heeft dit voorrang: het vergrendelingsbestand wordt opnieuw geëvalueerd en opnieuw gegenereerd en de aangevraagde vergrendelde modus wordt genegeerd. Deze waarschuwing wordt gegenereerd, zodat de genegeerde vergrendelde modus niet stil is.

Solution

Schakel slechts één van deze eigenschappen in op basis van uw intentie:

  • Om herhaalbare herstelbewerkingen te garanderen (bijvoorbeeld in CI/CD-scenario's), moet u de instelling RestoreForceEvaluateingeschakeld houden RestoreLockedMode en stoppen. Verwijder bijvoorbeeld de optie (of-p:RestoreForceEvaluate=true) uit de --force-evaluate herstelopdracht:

    dotnet restore --locked-mode
    
  • Als u zwevende versies opzettelijk opnieuw wilt evalueren en het vergrendelingsbestand opnieuw wilt genereren, houdt RestoreForceEvaluate u de instelling RestoreLockedModeingeschakeld en stopt u:

    dotnet restore --force-evaluate
    

Note

Deze waarschuwing wordt standaard gegenereerd vanaf de .NET 11 SDK (SdkAnalysisLevelwaarde 11.0.100 of hoger). U kunt de SdkAnalysisLevel eigenschap wijzigen om dit gedrag te bepalen.