NETSDK1022: Dubbele items zijn opgenomen
Dit artikel is van toepassing op: ✔️ .NET Core 2.1.100 SDK en latere versies
Vanaf Visual Studio 2017/MSBuild versie 15.3 bevat de .NET SDK automatisch items uit de projectmap. Deze items omvatten Compile
en Content
doelen. Dit gedrag vereenvoudigt projectbestanden.
Als u echter expliciet een van deze items in uw projectbestand definieert, krijgt u waarschijnlijk een buildfout die vergelijkbaar is met de volgende:
Dubbele 'Compileer'-items zijn opgenomen. De .NET SDK bevat standaard 'Compileer'-items uit uw projectmap. U kunt deze items verwijderen uit uw projectbestand of de eigenschap EnableDefaultCompileItems instellen op false als u ze expliciet wilt opnemen in uw projectbestand.
Er zijn dubbele 'EmbeddedResource'-items opgenomen. De .NET SDK bevat standaard 'EmbeddedResource'-items uit uw projectmap. U kunt deze items verwijderen uit uw projectbestand of de eigenschap EnableDefaultEmbeddedResourceItems instellen op False als u ze expliciet wilt opnemen in uw projectbestand.
Ga op een van de volgende manieren te werk om de fouten op te lossen:
Verwijder de expliciete
Compile
items ofNone
EmbeddedResource
items die overeenkomen met de impliciete items die in de vorige tabel worden vermeld.Stel de eigenschap EnableDefaultItems in om alle impliciete bestandsopname uit te
false
schakelen:<PropertyGroup> <EnableDefaultItems>false</EnableDefaultItems> </PropertyGroup>
Als u bestanden wilt opgeven die met uw app moeten worden gepubliceerd, kunt u nog steeds de bekende MSBuild-mechanismen hiervoor gebruiken, bijvoorbeeld het
Content
element.Schakel selectief alleen , of globs uit door de eigenschap EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems of EnableDefaultNoneItems in te stellen op
false
:None
EmbeddedResource
Compile
<PropertyGroup> <EnableDefaultCompileItems>false</EnableDefaultCompileItems> <EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems> <EnableDefaultNoneItems>false</EnableDefaultNoneItems> </PropertyGroup>
Als u globs alleen uitschakelt
Compile
, worden in Solution Explorer in Visual Studio nog steeds *.cs items weergegeven als onderdeel van het project, opgenomen alsNone
items. Als u de implicieteNone
glob wilt uitschakelen, moet u dezefalse
ook instellenEnableDefaultNoneItems
.
WPF-projecten
Deze fout kan optreden in een WPF-project vanwege dubbele ApplicationDefinition
items of Page
items. U kunt de fout oplossen door standaarditems uit te schakelen met behulp van een MSBuild-eigenschap. Als u bijvoorbeeld standaarditems Page
in een WPF-project wilt uitschakelen, stelt u het EnableDefaultPageItems
false
volgende in:
<PropertyGroup>
<EnableDefaultPageItems>false</EnableDefaultPageItems>
</PropertyGroup>
Zie Fouten met betrekking tot dubbele items (WPF) voor meer informatie.