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
- oderNone
-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
oderNone
, indem Sie die Eigenschaft EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems, oder EnableDefaultNoneItems auffalse
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 alsNone
-Elemente weiterhin als Teil des Projekts an. Um das impliziteNone
-Glob zu deaktivieren, legen Sie auchEnableDefaultNoneItems
auffalse
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).