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
ouNone
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
ouNone
uniquement en définissant la propriété EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems ou EnableDefaultNoneItems surfalse
:<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émentsNone
. Pour désactiver le glob impliciteNone
, définissez égalementEnableDefaultNoneItems
surfalse
.
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).