Compartilhar via


NETSDK1022: Foram incluídos itens duplicados

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

Do Visual Studio 2017/MSBuild versão 15.3 em diante, o SDK do .NET inclui automaticamente itens do diretório do projeto por padrão. Esses itens incluem Compile e Content destinos. Esse comportamento simplifica os arquivos de projeto.

No entanto, se você definir explicitamente qualquer um desses itens no arquivo de projeto, é provável que receba um erro de compilação semelhante ao seguinte:

Foram incluídos itens de "Compilação" duplicados. O SDK do .NET inclui os itens de "Compilação" do diretório do projeto por padrão. É possível remover esses itens do arquivo de projeto ou definir a propriedade “EnableDefaultCompileItems” como “false” se desejar incluí-los explicitamente no arquivo de projeto.

Foram incluídos os itens "EmbeddedResource" duplicados. O SDK do .NET inclui itens "EmbeddedResource" no diretório do projeto por padrão. Você pode remover esses itens do arquivo do projeto ou definir a propriedade "EnableDefaultEmbeddedResourceItems" como "false" se quiser incluí-los explicitamente no arquivo do projeto.

Para resolver os erros, siga um destes procedimentos:

  • Remova os itens explícitos Compile, EmbeddedResource ou None que correspondam aos implícitos listados na tabela anterior.

  • Defina a propriedade EnableDefaultItems para false a fim de desabilitar toda inclusão implícita de arquivos:

    <PropertyGroup>
      <EnableDefaultItems>false</EnableDefaultItems>
    </PropertyGroup>
    

    Se você quiser especificar arquivos a serem publicados com seu aplicativo, ainda poderá usar os mecanismos MSBuild conhecidos para isso, por exemplo, o elemento Content.

  • Desabilitar seletivamente apenas Compile, EmbeddedResource ou None globs definindo as propriedades EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems ou EnableDefaultNoneItems como false:

    <PropertyGroup>
      <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
      <EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems>
      <EnableDefaultNoneItems>false</EnableDefaultNoneItems>
    </PropertyGroup>
    

    Se você desabilitar apenas o globs Compile, o Gerenciador de Soluções do Visual Studio ainda vai mostrar itens *.cs como parte do projeto, incluídos como itens None. Para desabilitar o glob implícito None, defina EnableDefaultNoneItems como false também.

Projetos WPF

Você pode se deparar com este erro em um projeto do WPF devido a itens ApplicationDefinition ou Page duplicados. Para resolver o erro, você pode desabilitar os itens padrão usando uma propriedade do MSBuild. Por exemplo, para desabilitar os itens padrão Page em um projeto WPF, defina EnableDefaultPageItems como false:

<PropertyGroup>
  <EnableDefaultPageItems>false</EnableDefaultPageItems>
</PropertyGroup>

Para obter mais informações, consulte Erros relacionados a itens duplicados (WPF).