Compartir a través de


NETSDK1071: PackageReference con versiones explícitas a un metapaquete que se incluiría con el marco.

Este artículo se aplica a: ✔️ SDK de .NET 5.0.100 y versiones posteriores

Cuando el SDK de .NET emite una advertencia NETSDK1071, sugiere que puede haber un conflicto de versión en el futuro entre la versión de un metapaquete especificado en packageReference y la versión de ese metapaquete como se hace referencia implícitamente a través de una propiedad TargetFramework:

<PropertyGroup>
  <TargetFramework>net6.0</TargetFramework>
</PropertyGroup>

Dado que el TargetFramework elemento trae automáticamente una versión del metapaquete, las versiones entrarán en conflicto si alguna vez difieren.

Para resolver este problema:

  1. Cuando tenga como destino .NET Core o .NET Standard, considere la posibilidad de evitar referencias explícitas a Microsoft.NETCore.App o NETStandard.Library en el archivo del proyecto.

  2. Si necesita una versión específica del entorno de ejecución cuando tenga como destino .NET Core, use la <RuntimeFrameworkVersion>propiedad en lugar de hacer referencia al metapaquete directamente. Por ejemplo, esto podría ocurrir si usa implementaciones independientes y necesita un parche específico del entorno de ejecución 1.0.0 LTS.

  3. Si necesita una versión específica de NetStandard.Library cuando tenga como destino .NET Standard, puede usar la <NetStandardImplicitPackageVersion> propiedad y establecerla en la versión que necesita.

  4. No agregue o actualice explícitamente las referencias a Microsoft.NETCore.App o NETSTandard.Library en proyectos de .NET Framework. NuGet instala automáticamente cualquier versión necesaria NETStandard.Library al usar un paquete NuGet basado en .NET Standard.

  5. No especifique una versión para Microsoft.AspNetCore.App o Microsoft.AspNetCore.All cuando use .NET Core 2.1 y versiones posteriores, ya que el SDK de .NET selecciona automáticamente la versión adecuada. (Nota: Esto solo funciona cuando el destino es .NET Core 2.1 si el proyecto también usa Microsoft.NET.Sdk.Web. Este problema se resolvió en el SDK de .NET Core 2.2).

  6. Si desea que la advertencia desaparezca, también puede deshabilitarla:

    <PackageReference Include="Microsoft.NetCore.App" Version="2.2.8" >
      <AllowExplicitVersion>true</AllowExplicitVersion>
    </PackageReference>