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
, atauNone
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
, ,EmbeddedResource
atauNone
glob secara selektif dengan mengatur properti EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems, atau EnableDefaultNoneItems kefalse
:<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 sebagaiNone
item. Untuk menonaktifkan glob implisitNone
, aturEnableDefaultNoneItems
kefalse
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).