NETSDK1022: Dubbletter inkluderades
Den här artikeln gäller för: ✔️ .NET Core 2.1.100 SDK och senare versioner
Från och med Visual Studio 2017/MSBuild version 15.3 innehåller .NET SDK automatiskt objekt från projektkatalogen som standard. Dessa objekt inkluderar Compile
och Content
mål. Det här beteendet förenklar projektfilerna.
Men om du uttryckligen definierar något av dessa objekt i projektfilen får du förmodligen ett byggfel som liknar följande:
Dubbletter av kompileringsobjekt inkluderades. .NET SDK innehåller kompileringsobjekt från projektkatalogen som standard. Du kan antingen ta bort dessa objekt från projektfilen eller ange egenskapen "EnableDefaultCompileItems" till "false" om du uttryckligen vill inkludera dem i projektfilen.
Duplicerade "EmbeddedResource"-objekt inkluderades. .NET SDK innehåller "EmbeddedResource"-objekt från projektkatalogen som standard. Du kan antingen ta bort dessa objekt från projektfilen eller ange egenskapen EnableDefaultEmbeddedResourceItems till "false" om du uttryckligen vill inkludera dem i projektfilen.
Lös felen genom att göra något av följande:
Ta bort de explicita
Compile
objekten ,EmbeddedResource
ellerNone
som matchar de implicita objekt som anges i föregående tabell.Ange egenskapen EnableDefaultItems till för
false
att inaktivera all implicit filinkludering:<PropertyGroup> <EnableDefaultItems>false</EnableDefaultItems> </PropertyGroup>
Om du vill ange filer som ska publiceras med din app kan du fortfarande använda de kända MSBuild-mekanismerna för det, till exempel elementet
Content
.Inaktivera endast , eller globs selektivt genom att ange egenskapen EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems eller EnableDefaultNoneItems till
false
:None
EmbeddedResource
Compile
<PropertyGroup> <EnableDefaultCompileItems>false</EnableDefaultCompileItems> <EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems> <EnableDefaultNoneItems>false</EnableDefaultNoneItems> </PropertyGroup>
Om du bara inaktiverar
Compile
globs visar Solution Explorer i Visual Studio fortfarande *.cs objekt som en del av projektet, som ingår somNone
objekt. Om du vill inaktivera implicitNone
glob anger duEnableDefaultNoneItems
tillfalse
också.
WPF-projekt
Du kan stöta på det här felet i ett WPF-projekt på grund av dubbletter ApplicationDefinition
eller Page
objekt. Du kan lösa felet genom att inaktivera standardobjekt med hjälp av en MSBuild-egenskap. Om du till exempel vill inaktivera standardobjekt Page
i ett WPF-projekt anger du EnableDefaultPageItems
till false
:
<PropertyGroup>
<EnableDefaultPageItems>false</EnableDefaultPageItems>
</PropertyGroup>
Mer information finns i Fel relaterade till duplicerade objekt (WPF).