Advertencia de NuGet NU1512

RestoreForceEvaluate invalida RestoreLockedMode; El archivo de bloqueo de paquetes se volverá a evaluar y volver a generar y se omitirá el modo bloqueado.

Issue

Tanto como RestoreLockedModeRestoreForceEvaluate están habilitados para la restauración, pero estas opciones son contrarias:

  • RestoreLockedMode requiere que el packages.lock.json archivo permanezca sin cambios y se produzca un error en la restauración si las dependencias del paquete resueltas difieren del archivo de bloqueo.
  • RestoreForceEvaluate obliga a NuGet a volver a evaluar las dependencias del paquete y volver a generar el archivo de bloqueo en cada restauración.

Cuando se establecen ambos, RestoreForceEvaluate tiene prioridad: el archivo de bloqueo se vuelve a evaluar y regenera, y se omite el modo bloqueado solicitado. Esta advertencia se genera para que el modo bloqueado omitido no sea silencioso.

Solución

Habilite solo una de estas propiedades, en función de la intención:

  • Para garantizar restauraciones repetibles (por ejemplo, en escenarios de CI/CD), mantenga RestoreLockedMode habilitado y detenga la configuración RestoreForceEvaluate. Por ejemplo, quite la --force-evaluate opción (o -p:RestoreForceEvaluate=true) del comando restore:

    dotnet restore --locked-mode
    
  • Para volver a evaluar intencionadamente las versiones flotantes y volver a generar el archivo de bloqueo, mantenga RestoreForceEvaluate habilitado y detenga la configuración RestoreLockedMode:

    dotnet restore --force-evaluate
    

Note

Esta advertencia se genera de forma predeterminada a partir del SDK de .NET 11 (SdkAnalysisLevelvalor 11.0.100 o superior). Puede cambiar la SdkAnalysisLevel propiedad para controlar este comportamiento.