Comparteix a través de


NETSDK1071: Elemento PackageReference con una versión explícita 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

Si el SDK de .NET emite una advertencia NETSDK1071, sugiere que puede haber un conflicto de versiones en el futuro entre la versión de un metapaquete especificada en un elemento PackageReference y la versión de ese metapaquete a la que se hace referencia de forma implícita a través de una propiedad TargetFramework:

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

Como TargetFramework aporta de forma automática una versión del metapaquete, las versiones entrarán en conflicto en caso de que difieran.

Para resolver este problema:

  1. Al establecer 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 de proyecto.

  2. Si necesita una versión concreta del entorno de ejecución cuando el destino es .NET Core, use la propiedad <RuntimeFrameworkVersion> en lugar de hacer referencia de forma directa al metapaquete. Por ejemplo, esto puede ocurrir si usa implementaciones independientes y necesita una versión específica del entorno de ejecución de LTS 1.0.0.

  3. Si necesita una versión concreta de NetStandard.Library cuando el destino es .NET Standard, puede usar la propiedad <NetStandardImplicitPackageVersion> y establecerla en la versión necesaria.

  4. No agregue referencias a Microsoft.NETCore.App y NETSTandard.Library ni las actualice de forma explícita en proyectos de .NET Framework. NuGet instala de forma automática cualquier versión de NETStandard.Library que necesite al usar un paquete NuGet basado en .NET Standard.

  5. No especifique una versión para Microsoft.AspNetCore.App o Microsoft.AspNetCore.All al usar .NET Core 2.1 y versiones posteriores, ya que el SDK de .NET selecciona de forma automática 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 quiere que desaparezca la advertencia, también puede deshabilitarla:

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