Share via


NETSDK1022: Yinelenen öğeler dahil edildi

Bu makale şunlar için geçerlidir: ✔️ .NET Core 2.1.100 SDK ve sonraki sürümleri

Visual Studio 2017 / MSBuild sürüm 15.3'ten başlayarak, .NET SDK'sı varsayılan olarak proje dizininden öğeleri otomatik olarak içerir. Bu öğeler ve Content hedefleri içerirCompile. Bu davranış proje dosyalarını basitleştirir.

Ancak, proje dosyanızda bu öğelerden herhangi birini açıkça tanımlarsanız, aşağıdakine benzer bir derleme hatasıyla karşılaşırsınız:

Yinelenen 'Derleme' öğeleri dahil edildi. .NET SDK'sı varsayılan olarak proje dizininizdeki 'Derle' öğelerini içerir. Bu öğeleri proje dosyanızdan kaldırabilir veya proje dosyanıza açıkça eklemek istiyorsanız 'EnableDefaultCompileItems' özelliğini 'false' olarak ayarlayabilirsiniz.

Yinelenen 'EmbeddedResource' öğeleri dahil edildi. .NET SDK'sı varsayılan olarak proje dizininizdeki 'EmbeddedResource' öğelerini içerir. Bu öğeleri proje dosyanızdan kaldırabilir veya proje dosyanıza açıkça eklemek istiyorsanız 'EnableDefaultEmbeddedResourceItems' özelliğini 'false' olarak ayarlayabilirsiniz.

Hataları çözmek için aşağıdakilerden birini yapın:

  • Önceki tabloda listelenen örtük öğelerle eşleşen açık Compile, EmbeddedResourceveya None öğelerini kaldırın.

  • Tüm örtük dosya ekleme özelliğini devre dışı bırakmak için false EnableDefaultItems özelliğini olarak ayarlayın:

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

    Uygulamanızla yayımlanacak dosyaları belirtmek istiyorsanız, bunun için bilinen MSBuild mekanizmalarını (örneğin, Content öğesi) kullanmaya devam edebilirsiniz.

  • EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems veya EnableDefaultNoneItems özelliğini falseolarak ayarlayarak yalnızca Compile, EmbeddedResourceNone veya glob'ları seçmeli olarak devre dışı bırakın:

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

    Yalnızca glob'ları devre dışı bırakırsanız Compile Visual Studio'daki Çözüm Gezgini yine de proje kapsamında *.cs öğeleri gösterir ve öğeler olarak None eklenir. Örtük None glob'ı devre dışı bırakmak için false de olarak ayarlayınEnableDefaultNoneItems.

WPF projeleri

Yinelenen ApplicationDefinition veya Page öğeler nedeniyle bir WPF projesinde bu hataya isabet edebilirsiniz. Hatayı çözmek için bir MSBuild özelliği kullanarak varsayılan öğeleri devre dışı bırakabilir misiniz? Örneğin, wpf projesindeki varsayılan Page öğeleri devre dışı bırakmak için olarak falseayarlayınEnableDefaultPageItems:

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

Daha fazla bilgi için bkz . Yinelenen öğelerle (WPF) ilgili hatalar.