Udostępnij za pośrednictwem


NETSDK1022: Dołączono zduplikowane elementy

Ten artykuł dotyczy: ✔️ .NET Core 2.1.100 SDK i nowsze wersje

Począwszy od programu Visual Studio 2017/ MSBuild w wersji 15.3, zestaw .NET SDK automatycznie dołącza elementy z katalogu projektu domyślnie. Te elementy obejmują Compile elementy i Content cele. To zachowanie upraszcza pliki projektu.

Jeśli jednak jawnie zdefiniujesz dowolny z tych elementów w pliku projektu, prawdopodobnie wystąpi błąd kompilacji podobny do następującego:

Dołączono zduplikowane elementy "Kompiluj". Zestaw .NET SDK domyślnie zawiera elementy "Kompiluj" z katalogu projektu. Możesz usunąć te elementy z pliku projektu lub ustawić właściwość "EnableDefaultCompileItems" na wartość "false", jeśli chcesz jawnie dołączyć je do pliku projektu.

Uwzględniono zduplikowane elementy "EmbeddedResource". Zestaw .NET SDK domyślnie zawiera elementy "EmbeddedResource" z katalogu projektu. Możesz usunąć te elementy z pliku projektu lub ustawić właściwość "EnableDefaultEmbeddedResourceItems" na wartość "false", jeśli chcesz jawnie dołączyć je do pliku projektu.

Aby usunąć błędy, wykonaj jedną z następujących czynności:

  • Usuń jawne Compileelementy , EmbeddedResourcelub None zgodne z niejawnymi wymienionymi w poprzedniej tabeli.

  • Ustaw właściwość EnableDefaultItems, aby false wyłączyć wszystkie niejawne dołączanie plików:

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

    Jeśli chcesz określić pliki do opublikowania w aplikacji, nadal możesz użyć znanych mechanizmów MSBuild, na przykład Content elementu.

  • Selektywnie wyłączaj tylko Compilewartości , EmbeddedResourcelub None globy, ustawiając właściwość EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems lub EnableDefaultNoneItems na :false

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

    Jeśli wyłączysz Compile tylko elementy globs, Eksplorator rozwiązań w programie Visual Studio nadal wyświetla *.cs elementy w ramach projektu, dołączone jako None elementy. Aby wyłączyć niejawny None glob, ustaw też false wartość EnableDefaultNoneItems .

Projekty WPF

Ten błąd może wystąpić w projekcie WPF z powodu duplikatu ApplicationDefinition lub Page elementów. Aby rozwiązać ten problem, można wyłączyć elementy domyślne przy użyciu właściwości MSBuild. Aby na przykład wyłączyć elementy domyślne Page w projekcie WPF, ustaw wartość falseEnableDefaultPageItems :

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

Aby uzyskać więcej informacji, zobacz Błędy związane z zduplikowanymi elementami (WPF).