Bagikan melalui


NETSDK1022: Item duplikat disertakan

Artikel ini berlaku untuk: ✔️ .NET Core 2.1.100 SDK dan versi yang lebih baru

Mulai visual Studio 2017 / MSBuild versi 15.3, .NET SDK secara otomatis menyertakan item dari direktori proyek secara default. Item-item ini termasuk Compile dan Content target. Perilaku ini menyederhanakan file proyek.

Namun, jika Anda secara eksplisit menentukan salah satu item ini dalam file proyek, Anda mungkin mendapatkan kesalahan build yang mirip dengan yang berikut ini:

Item 'Kompilasi' duplikat disertakan. .NET SDK menyertakan item 'Kompilasi' dari direktori proyek Anda secara default. Anda dapat menghapus item ini dari file proyek Anda, atau mengatur properti 'EnableDefaultCompileItems' ke 'false' jika Anda ingin secara eksplisit menyertakannya dalam file proyek Anda.

Item duplikat 'EmbeddedResource' disertakan. .NET SDK menyertakan item 'EmbeddedResource' dari direktori proyek Anda secara default. Anda dapat menghapus item ini dari file proyek Anda, atau mengatur properti 'EnableDefaultEmbeddedResourceItems' ke 'false' jika Anda ingin secara eksplisit menyertakannya dalam file proyek Anda.

Untuk mengatasi kesalahan, lakukan salah satu hal berikut ini:

  • Hapus item eksplisit Compile, EmbeddedResource, atau None yang cocok dengan item implisit yang tercantum pada tabel sebelumnya.

  • Atur properti EnableDefaultItems ke false untuk menonaktifkan semua penyertaan file implisit:

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

    Jika Anda ingin menentukan file yang akan diterbitkan dengan aplikasi, Anda masih dapat menggunakan mekanisme MSBuild yang diketahui untuk itu, misalnya, Content elemen .

  • Nonaktifkan hanya Compile, , EmbeddedResourceatau None glob secara selektif dengan mengatur properti EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems, atau EnableDefaultNoneItems ke false:

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

    Jika Anda hanya menonaktifkan Compile glob, Penjelajah Solusi di Visual Studio masih menampilkan *.cs item sebagai bagian dari proyek, disertakan sebagai None item. Untuk menonaktifkan glob implisit None , atur EnableDefaultNoneItems ke false juga.

Proyek WPF

Anda mungkin mengalami kesalahan ini dalam proyek WPF karena duplikat ApplicationDefinition atau Page item. Untuk mengatasi kesalahan, dapatkah Anda menonaktifkan item default menggunakan properti MSBuild. Misalnya, untuk menonaktifkan item default Page dalam proyek WPF, atur EnableDefaultPageItems ke false:

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

Untuk informasi selengkapnya, lihat Kesalahan yang terkait dengan item duplikat (WPF).