Compartir a través de


NETSDK1022: se han incluido elementos duplicados

Este artículo se aplica a: ✔️ SDK de .NET Core 2.1.100 y versiones posteriores

A partir de Visual Studio 2017 y MSBuild, versión 15.3, el SDK de .NET incluye automáticamente los elementos del directorio del proyecto de forma predeterminada. Estos elementos incluyen destinos Compile y Content. Este comportamiento simplifica los archivos del proyecto.

Sin embargo, si define explícitamente cualquiera de estos elementos en el archivo del proyecto, es probable que obtenga un error de compilación similar al siguiente:

Se han incluido elementos de compilación duplicados. El SDK de .NET incluye elementos de compilación del directorio del proyecto de forma predeterminada. Puede quitar estos elementos del archivo del proyecto, o bien establecer la propiedad "EnableDefaultCompileItems" en "false" si quiere incluirlos de forma explícita en el archivo del proyecto.

Se incluyeron elementos "EmbeddedResource" duplicados. El SDK de .NET incluye elementos "EmbeddedResource" del directorio del proyecto de forma predeterminada. Puede quitar estos elementos del archivo del proyecto, o bien establecer la propiedad "EnableDefaultEmbeddedResourceItems" en "false" si quiere incluirlos en él de forma explícita.

Para resolver los errores, lleve a cabo una de las siguientes acciones:

  • Quite los elementos Compile, EmbeddedResource o None explícitos que coincidan con los implícitos enumerados en la tabla anterior.

  • Establezca la propiedad EnableDefaultItems en false para deshabilitar toda la inclusión de archivos implícita:

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

    Si quiere especificar que se publiquen archivos con la aplicación, puede seguir usando los mecanismos de MSBuild conocidos para ello, por ejemplo, el elemento Content.

  • Deshabilite de forma selectiva solo los globs Compile, EmbeddedResource o None mediante el establecimiento de la propiedad EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems o EnableDefaultNoneItems en false:

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

    Si solo deshabilita los globs Compile, el Explorador de soluciones de Visual Studio sigue mostrando elementos *.cs como parte del proyecto, incluidos como elementos None. Para deshabilitar el glob None implícito, establezca EnableDefaultNoneItems en false.

Proyectos de WPF

Es posible que este error se produzca en un proyecto de WPF debido a elementos ApplicationDefinition o Page duplicados. Para resolver el error, puede deshabilitar los elementos predeterminados con una propiedad de MSBuild. Por ejemplo, para deshabilitar los elementos Page predeterminados en un proyecto de WPF, establezca EnableDefaultPageItems en false:

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

Para obtener más información, consulte Errores relacionados con elementos duplicados (WPF).