Setiap kali saya menambahkan file javascript atau css ke proyek inti asp.net saya dan saya jalankan dotnet run
di terminal bash saya, saya mendapatkan kesalahan berikut:
/usr/share/dotnet/sdk/1.0.1/Sdks/Microsoft.NET.Sdk/build/Microsoft
.NET.Sdk.DefaultItems.targets (188,5): error: Duplikat 'Konten' disertakan. .NET SDK menyertakan item 'Konten' dari direktori proyek Anda secara default. Anda dapat menghapus item-item ini dari file proyek Anda, atau mengatur properti 'EnableDefaultContentItems' menjadi 'false' jika Anda ingin secara eksplisit memasukkannya dalam file proyek Anda. Untuk informasi lebih lanjut, lihat https://aka.ms/sdkimplicititems . Item duplikat adalah: 'wwwroot / css / BasicQuotation.css'; 'wwwroot / js / BasicQuotation.js' [/mnt/c/Dev/myproject/MyProject/MyProject.csproj]
Bangunan gagal. Harap perbaiki kesalahan pembuatan dan jalankan kembali.
Saya dapat memperbaikinya dengan menghapus ItemGroup
dari file csproj saya, tetapi saya rasa itu tidak produktif.
Ini terjadi dalam template Visual Studio 2017 ASP.NET Core Web Application (.NET Core) default. Saya menambahkan file ke proyek saya dengan mengklik kanan folder wwwroot> js dan kemudian pilihAdd > New Item > JavaScript File
Ini adalah file .csproj saya:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<PropertyGroup>
<PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
</PropertyGroup>
<PropertyGroup>
<UserSecretsId>aspnet-MyProject-7e1906d8-5dbd-469a-b237-d7a563081253</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<Compile Remove="wwwroot\lib\jquery-validation\**" />
<Content Remove="wwwroot\lib\jquery-validation\**" />
<EmbeddedResource Remove="wwwroot\lib\jquery-validation\**" />
<None Remove="wwwroot\lib\jquery-validation\**" />
</ItemGroup>
<ItemGroup>
<Content Include="wwwroot\css\BasicQuotation.css" />
<Content Include="wwwroot\js\BasicQuotation.js" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" PrivateAssets="All" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.1" PrivateAssets="All" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.0" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="1.0.0" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" />
</ItemGroup>
<ItemGroup>
<Folder Include="Data\Commands\" />
<Folder Include="Data\Queries\" />
<Folder Include="wwwroot\images\" />
</ItemGroup>
</Project>
Jawaban:
Jadi saya mengalami masalah yang sama. Saya tidak ingin mematikan DefaultCompileItems karena saya tahu itu tidak akan "memperbaiki" masalah. Jadi saya membongkar proyek saya dan membuka file .csproj dalam mode teks di Visual Studio dan melihat ini.
Ketika saya mengomentari blok ItemGroup pertama, itu berhasil. Apa yang saya asumsikan sedang terjadi adalah bahwa proyek ini menambahkan seluruh folder \ images \ friends-eating \ dan kemudian menambahkan setiap gambar individu, menyebabkan duplikasi.
Sejauh custom css dan js, proyek secara otomatis menambahkan wwwroot \ css dan wwwroot \ js jadi jika Anda memiliki file individual ditambahkan (seperti wwwroot \ css \ custom-bootstrap-navbar.css) itu akan dihitung sebagai duplikat.
sumber
<Folder Include="wwwroot\" />
bekerja untuk saya, tetapi visual studio membatalkannya nanti :(sumber
Ini berhasil dalam kasus saya:
sumber
Itu terjadi ketika saya memutakhirkan proyek saya dari .NET Core 1.X ke 2.0 sekarang. Ini solusinya.
Kemudian, hapus itemGroup item mulai dengan
<Content Include = "wwwroot\xxxxx"
sumber
Masalah saya sudah dekat tetapi tidak persis sama. Kesalahan saya adalah ini:
Jika saya melakukan ini:
Itu tidak akan dikompilasi karena tiba-tiba
Areas
tidak akan dikenali.Solusi saya, sepertinya aneh, tetapi pesannya memberi tahu saya, ada file duplikat:
Melihat
.csproj
file saya :Ini adalah lokasi HANYA dalam seluruh proyek di mana file-file ini referensi (selain dari mana mereka dimuat.) Jadi frasa duplikat tidak masuk akal bagi saya. Namun, mengomentari file-file itu seperti itu, mengurus masalah saya:
Saya menganggap ini ada hubungannya dengan
2.0.0-preview2-006497
yang saya instal baru-baru ini.Juga, tautan ini menyebutkan pembicaraan tentang gumpalan. Tapi tidak memberitahuku di mana itu. Ini berbicara tentang SDK dan semacamnya. Namun jawabannya adalah
.js
file khusus saya . Tautan itu perlu diperbarui atau diperluas di IMHO. Semoga ini bisa membantu seseorang.sumber
Seperti kata tautan , Anda dapat menonaktifkan perilaku ini (sertakan otomatis) dan sertakan semua konten secara eksplisit dengan menambahkan ini ke
csproj
file Anda :sumber
CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point [/mnt/c/Dev/myproject/MyProject/MyProject.csproj] The build failed. Please fix the build errors and run again.
Dalam kasus saya, saya menyelesaikan ini dengan menghapus semua file dari Direktori-wwwroot di VS. Bongkar dan muat ulang Proyek. Salin semua file kembali dengan VS. Selesai
sumber
Sebenarnya, inti Asp.net secara otomatis memasukkan konten dari
wwwroot\css\
,wwwroot\js\
danwwwroot\lib\
lokasi, jadi meskipun ini jikacsproj
file Anda secara eksplisit memasukkan konten dari direktori tersebut maka konten tersebut akan diduplikasi sehingga menghapus konten daricsproj
file Anda adalah cara yang lebih baik untuk menghilangkan kesalahan ini. Jadi hapus konten di bawah ini-sumber
<PropertyGroup> <EnableDefaultContentItems>false</EnableDefaultContentItems> </PropertyGroup>
ke file .csproj.EnableDefaultContentItems
atau tidak. Mereka adalah dua pendekatan yang berbedaKasus saya, saya menonaktifkan keduanya di bawah item default.
sumber
Bukannya saya bisa melihatnya di contoh Anda di atas, untuk membantu pencari SO lainnya ..
Anda juga bisa mendapatkan kesalahan ini ketika Anda memiliki file yang sama tercantum dua kali dalam
<Content Include="xxx" />
elemen dalamcsproj
file Anda .Hapus duplikat dan buat kembali.
sumber
Di bawah Visual Studio 2017 15.3, dengan .NET Core 2.0, EnableDefaultCompileItems tidak bekerja untuk saya.
Saya perlu menambahkan ini ke .csproj saya
sumber
Saya menemukan solusi tepat yang berbeda.
Dan hapus semua tag konten dalam file csproj jika ada, misalnya;
Dan hanya tambahkan ini;
Jadi, file csproj harus seperti ini;
Dengan cara itu, saya pikir Anda menambahkan semua file di bawah folder tema. Jadi tidak termasuk mereka satu per satu yang muncul beberapa erro.
sumber
.NET Core Projects
Jika Anda berada di perpustakaan kelas, mungkin Anda harus menghapus semua elemen Kompilasi / Konten dari csproj Anda karena sudah termasuk secara otomatis.
sumber
Mengecualikan dan Termasuk kembali folder yang memiliki kesalahan duplikat berfungsi untuk saya! Semoga ini bisa membantu orang lain!
sumber
Saya pikir apa yang menonaktifkan "EnableDefaultContentItems" bukan pilihan terbaik.
cs-Proj
Pengeditan file manual juga bukan ide yang baik sama sekali.Jadi untuk pipeline server build kami, kami menulis alat yang sangat kecil yang akan menghapus semua entri yang digandakan secara otomatis: dotnet-csproj-cleaner
Kami menjalankannya di bawah Docker sebagai langkah pembangunan pertama dalam pipa integrasi berkesinambungan kami.
sumber
Saya memiliki masalah yang sama dengan hanya file, dan semua yang lain berfungsi (semua template saya disimpan langsung di wwwroot / konten). Proyek ini tidak saya buat jadi saya tidak tahu banyak detail.
Masalah telah diperbaiki dengan mengganti nama file dengan masalah:
MyTemplate.html - berganti nama -> MyTemplate2.html - berganti nama -> MyTemplate.html
Catatan : Pada saat rename pertama, saya mendapat kesalahan dengan sesuatu di sepanjang baris " konfigurasi konten tidak ditemukan ", tetapi rename kedua bekerja tanpa masalah.
Setelah ini saya berhasil menyusun proyek.
sumber