Partilhar via


NETSDK1071: PackageReference explicitamente versionado para um metapacote que seria incluído no framework.

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

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

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

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

Para resolver este problema:

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

  2. Se precisar de uma versão específica do runtime ao ter como alvo ao .NET Core, utilize a <RuntimeFrameworkVersion>propriedade em vez de referenciar o metapacote diretamente. Por exemplo, isso pode acontecer se estiveres a usar implantações independentes e precisares de um patch específico do runtime 1.0.0 LTS.

  3. Se você precisar de uma versão específica do NetStandard.Library ao direcionar o .NET Standard, poderá usar a <NetStandardImplicitPackageVersion> propriedade e defini-la para 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 que necessitar ao usar um pacote NuGet baseado no .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: isto só funciona ao direcionar para o .NET Core 2.1, se o projeto também usar Microsoft.NET.Sdk.Web. Este problema foi resolvido no SDK do .NET Core 2.2.)

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

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