NETSDK1022: Byly zahrnuty duplicitní položky.
Tento článek se vztahuje na: ✔️ .NET Core 2.1.100 SDK a novější verze
Počínaje sadou Visual Studio 2017 / MSBuild verze 15.3 sada .NET SDK ve výchozím nastavení automaticky obsahuje položky z adresáře projektu. Tyto položky zahrnují Compile
a Content
cíl. Toto chování zjednodušuje soubory projektu.
Pokud ale explicitně definujete některou z těchto položek v souboru projektu, pravděpodobně se zobrazí chyba sestavení podobná této:
Byly zahrnuty duplicitní položky Kompilace. Sada .NET SDK ve výchozím nastavení obsahuje položky zkompilovat z adresáře projektu. Tyto položky můžete buď odebrat ze souboru projektu, nebo nastavit vlastnost EnableDefaultCompileItems na false, pokud je chcete explicitně zahrnout do souboru projektu.
Byly zahrnuty duplicitní položky EmbeddedResource. Sada .NET SDK ve výchozím nastavení obsahuje položky EmbeddedResource z adresáře projektu. Tyto položky můžete buď odebrat ze souboru projektu, nebo nastavit vlastnost EnableDefaultEmbeddedResourceItems na false, pokud je chcete explicitně zahrnout do souboru projektu.
Pokud chcete tyto chyby vyřešit, udělejte jednu z těchto věcí:
Odeberte explicitní
Compile
položku neboEmbeddedResource
položky,None
které odpovídají implicitním položkám uvedeným v předchozí tabulce.Nastavte vlastnost EnableDefaultItems tak, aby
false
zakázala všechny implicitní zahrnutí souborů:<PropertyGroup> <EnableDefaultItems>false</EnableDefaultItems> </PropertyGroup>
Pokud chcete zadat soubory, které se mají publikovat ve vaší aplikaci, můžete pro tento prvek použít známé mechanismy MSBuild.
Content
Selektivní zakázání pouze
Compile
,EmbeddedResource
neboNone
globs nastavením EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems nebo EnableDefaultNoneItems vlastnost nafalse
:<PropertyGroup> <EnableDefaultCompileItems>false</EnableDefaultCompileItems> <EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems> <EnableDefaultNoneItems>false</EnableDefaultNoneItems> </PropertyGroup>
Pokud pouze zakážete
Compile
globy, Průzkumník řešení v sadě Visual Studio stále zobrazuje *.cs položky jako součást projektu, které jsou zahrnuté jakoNone
položky. Pokud chcete implicitníNone
glob zakázat, nastavteEnableDefaultNoneItems
hofalse
také.
Projekty WPF
K této chybě může dojít v projektu WPF kvůli duplicitním ApplicationDefinition
položkám nebo Page
položkám. Chcete-li tuto chybu vyřešit, můžete zakázat výchozí položky pomocí vlastnosti MSBuild. Pokud chcete například zakázat výchozí Page
položky v projektu WPF, nastavte EnableDefaultPageItems
na false
:
<PropertyGroup>
<EnableDefaultPageItems>false</EnableDefaultPageItems>
</PropertyGroup>
Další informace najdete v tématu Chyby související s duplicitními položkami (WPF).