Share via


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 Compileitems of NoneEmbeddedResourceitems 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 opfalse:NoneEmbeddedResourceCompile

    <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 als None items. Als u de impliciete None glob wilt uitschakelen, moet u deze false 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 EnableDefaultPageItemsfalsevolgende in:

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

Zie Fouten met betrekking tot dubbele items (WPF) voor meer informatie.