Compartilhar via


NETSDK1071: PackageReference com versão explícita para um metapacote que seria incluído no framework.

Este artigo se aplica a: ✔️ SDK do .NET 5.0.100 e versões posteriores

Quando o SDK do .NET emite aviso NETSDK1071, ele sugere que pode haver um conflito de versão no futuro entre a versão de um metapacote especificada em um PackageReference e a versão desse metapacote como referenciada implicitamente por meio de uma propriedade TargetFramework:

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

Como a TargetFramework importa automaticamente uma versão do metapacote, as versões entrarão em conflito caso sejam diferentes.

Para resolver esse problema:

  1. Ao direcionar para .NET Core ou .NET Standard, considere evitar referências explícitas a Microsoft.NETCore.App ou NETStandard.Library em seu arquivo de projeto.

  2. Se você precisar de uma versão específica do runtime ao direcionar o .NET Core, use a <RuntimeFrameworkVersion>propriedade em vez de referenciar o metapacote diretamente. Por exemplo, isso pode acontecer se você estiver usando implantações autocontidas e precisar de um patch específico do runtime 1.0.0 LTS.

  3. Se você precisar de uma versão específica de NetStandard.Library ao direcionar o .NET Standard, poderá usar a propriedade <NetStandardImplicitPackageVersion> e defini-la como a versão necessária.

  4. Não adicione ou atualize explicitamente referências a Microsoft.NETCore.App ou NETSTandard.Library em projetos do .NET Framework. O NuGet instala automaticamente qualquer versão de NETStandard.Library que você precisar ao usar um pacote NuGet compatível com .NET Standard.

  5. Não especifique uma versão para Microsoft.AspNetCore.App ou Microsoft.AspNetCore.All ao usar o .NET Core 2.1+, pois o SDK do .NET seleciona automaticamente a versão apropriada. (Observação: isso só funcionará ao direcionar o .NET Core 2.1 se o projeto também usar Microsoft.NET.Sdk.Web. Esse problema foi resolvido no SDK do .NET Core 2.2.)

  6. Se você quiser que o aviso desapareça, também pode desativá-lo.

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