Partager via


NETSDK1022 : Des éléments en double ont été inclus

Cet article s’applique à : ✔️ SDK .NET Core 2.1.100 et versions ultérieures

À compter de Visual Studio 2017 / MSBuild version 15.3, le Kit de développement logiciel (SDK) .NET inclut automatiquement les éléments du répertoire du projet par défaut. Ces éléments incluent les cibles Compile et Content. Ce comportement simplifie les fichiers projets.

Toutefois, si vous définissez explicitement l’un de ces éléments dans votre fichier projet, vous obtiendrez probablement une erreur de build similaire à ce qui suit :

Des éléments « Compile » en double ont été inclus. Le kit de développement logiciel (SDK) .NET inclut les éléments « Compile » de votre répertoire de projet par défaut. Vous pouvez supprimer ces éléments de votre fichier projet ou définir la propriété 'EnableDefaultCompileItems' sur 'false' si vous voulez explicitement les inclure dans votre fichier projet.

Des éléments « EmbeddedResource » en double ont été inclus. Le kit de développement logiciel (SDK) .NET inclut les éléments « EmbeddedResource » de votre répertoire de projet par défaut. Vous pouvez supprimer ces éléments de votre fichier projet ou définir la propriété « EnableDefaultEmbeddedResourceItems » sur « false » si vous voulez explicitement les inclure dans votre fichier projet.

Pour résoudre les erreurs, procédez de l’une des façons suivantes :

  • Supprimez les éléments explicites Compile, EmbeddedResource ou None qui correspondent aux éléments implicites répertoriés dans le tableau précédent.

  • Définissez la propriété EnableDefaultItems sur false pour désactiver toutes les inclusions de fichiers implicites :

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

    Si vous souhaitez spécifier des fichiers à publier avec votre application, vous pouvez toujours utiliser les mécanismes MSBuild connus, par exemple l’élément Content.

  • Désactivez de manière sélective les globs Compile, EmbeddedResource ou None uniquement en définissant la propriété EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems ou EnableDefaultNoneItems sur false :

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

    Si vous désactivez les globs Compile uniquement, l’Explorateur de solutions de Visual Studio affiche toujours les éléments *.cs dans le cadre du projet, inclus en tant qu’éléments None. Pour désactiver le glob implicite None, définissez également EnableDefaultNoneItems sur false.

Projet WPF

Il est possible que vous voyez cette erreur s’afficher dans un projet WPF en raison d’éléments ApplicationDefinition ou Page en double. Pour résoudre l’erreur, vous pouvez désactiver les éléments par défaut à l’aide d’une propriété MSBuild. Par exemple, pour désactiver les éléments Page par défaut dans un projet WPF, définissez EnableDefaultPageItems sur false :

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

Pour plus d’informations, consultez Erreurs liées aux éléments en double (WPF).