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í Compilepoložku nebo EmbeddedResourcepolož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, EmbeddedResourcenebo None globs nastavením EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems nebo EnableDefaultNoneItems vlastnost na false:

    <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é jako None položky. Pokud chcete implicitní None glob zakázat, nastavte EnableDefaultNoneItems ho false 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).