Compartilhar via


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

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

Quando o SDK do .NET emite um aviso NETSDK1071, ele sugere que poderá haver um conflito de versão no futuro entre a versão de um metapacote especificado em uma PackageReference e a versão desse metapacote referenciada 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 esse problema:

  1. Ao direcionar o .NET Core ou o .NET Standard, evite referências explícitas a Microsoft.NETCore.App ou NETStandard.Library no arquivo do projeto.

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

  3. Se precisar de uma versão específica de NetStandard.Library ao direcionar ao .NET Standard, use a propriedade <NetStandardImplicitPackageVersion> e defina a versão necessária.

  4. Não adicione nem atualize referências explicitamente em nenhum a Microsoft.NETCore.App ou NETSTandard.Library nos projetos do .NET Framework. O NuGet instala automaticamente a versão de NETStandard.Library que você precisa ao usar um pacote de 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 e superiores, pois o SDK do .NET seleciona automaticamente a versão apropriada. (Observação: isso só funciona ao direcionar ao .NET Core 2.1 quando o projeto também usa 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 poderá desabilitá-lo:

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