Teilen über


NETSDK1022: Doppelte Elemente wurden einbezogen

Dieser Artikel gilt für: ✔️ .NET Core 2.1.100 SDK und höhere Versionen

Ab Visual Studio 2017/MSBuild-Version 15.3 schließt das .NET SDK standardmäßig automatisch Elemente aus dem Projektverzeichnis ein. Zu diesen Elementen gehören Compile und Content Ziele. Dieses Verhalten vereinfacht Projektdateien.

Wenn Sie jedoch beliebige dieser Elemente explizit in Ihrer Projektdatei definieren, erhalten Sie wahrscheinlich eine Buildfehlermeldung ähnlich der folgenden:

Doppelte „Compile“-Elemente wurden eingeschlossen. .NET SDK enthält „Compile“-Elemente aus Ihrem Projektverzeichnis in der Standardeinstellung. Sie können diese Elemente aus Ihrer Projektdatei entfernen oder die Eigenschaft „EnableDefaultCompileItems“ auf FALSE festlegen, wenn Sie sie explizit in Ihrer Projektdatei einschließen möchten.

Doppelte „EmbeddedResource“-Elemente wurden eingeschlossen. Das .NET SDK enthält „EmbeddedResource“-Elemente aus Ihrem Projektverzeichnis in der Standardeinstellung. Sie können diese Elemente aus Ihrer Projektdatei entfernen oder die Eigenschaft „EnableDefaultEmbeddedResourceItems“ auf FALSE festlegen, wenn Sie sie explizit in Ihrer Projektdatei einschließen möchten.

Zum Beheben der Fehler führen Sie eine der folgenden Aktionen aus:

  • Entfernen Sie die expliziten Compile-, EmbeddedResource- oder None-Elemente, die den in der vorherigen Tabelle aufgeführten impliziten Elementen entsprechen.

  • Um jedes implizite Einbeziehen von Dateien zu deaktivieren, legen Sie die EnableDefaultItems-Eigenschaft auf false fest:

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

    Wenn Sie Dateien angeben möchten, die mit Ihrer Anwendung veröffentlicht werden sollen, können Sie weiterhin die bekannten MSBuild-Mechanismen dafür verwenden, wie etwa das Content-Element.

  • Deaktivieren Sie selektiv nur die Globs Compile, EmbeddedResource oder None, indem Sie die Eigenschaft EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems, oder EnableDefaultNoneItems auf false festlegen:

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

    Wenn Sie nur Compile-Globs deaktivieren, zeigt der Projektmappen-Explorer in Visual Studio die *.cs-Elemente eingeschlossen als None-Elemente weiterhin als Teil des Projekts an. Um das implizite None-Glob zu deaktivieren, legen Sie auch EnableDefaultNoneItems auf false fest.

WPF-Projekte

Dieser Fehler kann in einem WPF-Projekt aufgrund von doppelten ApplicationDefinition- oder Page-Elementen auftreten. Um den Fehler zu beheben, können Sie Standardelemente mithilfe einer MSBuild-Eigenschaft deaktivieren. Wenn Sie beispielsweise standard-Page Elemente in einem WPF-Projekt deaktivieren möchten, legen Sie EnableDefaultPageItems auf false fest:

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

Weitere Informationen finden Sie unter Fehler im Zusammenhang mit doppelten Elementen (WPF).