NETSDK1022: Duplikált elemek lettek belefoglalva
Ez a cikk a következőre vonatkozik: ✔️ .NET Core 2.1.100 SDK és újabb verziók
A Visual Studio 2017/MSBuild 15.3-s verziójától kezdve a .NET SDK alapértelmezés szerint automatikusan tartalmazza a projektkönyvtár elemeit. Ezek az elemek magukban foglalják és Content
célokat tartalmaznakCompile
. Ez a viselkedés leegyszerűsíti a projektfájlokat.
Ha azonban explicit módon definiálja ezeket az elemeket a projektfájlban, valószínűleg az alábbihoz hasonló buildelési hibát fog kapni:
A program ismétlődő "Fordítás" elemeket tartalmazott. A .NET SDK alapértelmezés szerint tartalmazza a projektkönyvtár "Fordítás" elemeit. Eltávolíthatja ezeket az elemeket a projektfájlból, vagy az "EnableDefaultCompileItems" tulajdonságot "false" értékre állíthatja, ha explicit módon fel szeretné venni őket a projektfájlba.
A program ismétlődő "EmbeddedResource" elemeket tartalmazott. A .NET SDK alapértelmezés szerint tartalmazza az EmbeddedResource elemeket a projektkönyvtárból. Eltávolíthatja ezeket az elemeket a projektfájlból, vagy az "EnableDefaultEmbeddedResourceItems" tulajdonságot "false" értékre állíthatja, ha explicit módon fel szeretné venni őket a projektfájlba.
A hibák elhárításához tegye az alábbiak egyikét:
Távolítsa el az előző táblázatban felsorolt implicit elemeknek megfelelő explicit
Compile
EmbeddedResource
, vagyNone
elemeket.Az EnableDefaultItems tulajdonság
false
beállításával tiltsa le az összes implicit fájlbefoglalást:<PropertyGroup> <EnableDefaultItems>false</EnableDefaultItems> </PropertyGroup>
Ha meg szeretné adni az alkalmazással közzéteendő fájlokat, akkor is használhatja az ismert MSBuild mechanizmusokat, például az
Content
elemet.Csak az
None
EmbeddedResource
EnableDefaultCompileItems, az EnableDefaultEmbeddedResourceItems vagy az EnableDefaultNoneItems tulajdonságfalse
beállításával tiltsa leCompile
a < a0/> parancsot:<PropertyGroup> <EnableDefaultCompileItems>false</EnableDefaultCompileItems> <EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems> <EnableDefaultNoneItems>false</EnableDefaultNoneItems> </PropertyGroup>
Ha csak a globokat tiltja le
Compile
, a Visual Studio Megoldáskezelő továbbra is *.cs elemeket jelenít meg a projekt részeként, elemekkéntNone
. Az implicitNone
glob letiltásához állítsa beEnableDefaultNoneItems
a következőtfalse
is:
WPF-projektek
Ezt a hibát egy WPF-projektben duplikáció ApplicationDefinition
vagy Page
elemek miatt érheti el. A hiba megoldásához letilthatja az alapértelmezett elemeket egy MSBuild tulajdonság használatával. Ha például egy WPF-projekt alapértelmezett Page
elemeit szeretné letiltani, állítsa a EnableDefaultPageItems
következőre false
:
<PropertyGroup>
<EnableDefaultPageItems>false</EnableDefaultPageItems>
</PropertyGroup>
További információ: Ismétlődő elemekhez (WPF) kapcsolódó hibák.