Saya punya proyek yang menghasilkan kesalahan berikut pada kompilasi:
kesalahan CS0579: Atribut Duplicate 'AssemblyVersion'
Saya telah memeriksa file AssemblyInfo.cs
dan sepertinya tidak ada duplikasi di sana.
Saya menemukan artikel ini di MSDN yang membahas masalah yang sama dan mengikuti saran dalam artikel ini untuk memperbaiki masalah.
Adakah yang bisa memberi tahu saya apa yang terjadi di sini? Apakah itu terjadi hanya jika memiliki dua proyek atau lebih dengan kelas yang memiliki nama serupa? Atau itu sesuatu yang lain?
c#
compiler-errors
Aamir
sumber
sumber
Jawaban:
Saya juga pernah mengalami masalah ini di masa lalu, jadi saya akan berasumsi bahwa proses pembuatan Anda menyediakan informasi perakitan secara terpisah untuk menyediakan versi. Dan itu menyebabkan duplikasi karena proyek Anda juga memiliki info itu di
AssemblyInfo.cs
file. Jadi hapus file dan saya pikir itu harus berfungsi.sumber
Mulai dari Visual Studio 2017 solusi lain untuk tetap menggunakan
AssemblyInfo.cs
file adalah mematikan generasi info perakitan otomatis seperti ini:Saya pribadi merasa sangat berguna untuk proyek-proyek yang perlu mendukung .NET Framework dan .NET Standard.
sumber
.csproj
file menggunakan halaman propertinya (Aplikasi, Build, Build Events, dll.),PropertyGroup
DenganGenerateAssemblyInfo
menghilang :-(Saya memiliki kesalahan yang sama dan itu menggarisbawahi Assembly Vesrion dan Assembly File Version sehingga membaca jawaban Luqi. Saya hanya menambahkannya sebagai komentar dan kesalahan diselesaikan
sumber
Saat mengonversi proyek yang lebih lama ke .NET Core, sebagian besar informasi yang ada di AssemblyInfo.cs sekarang dapat disetel pada proyek itu sendiri. Buka properti proyek dan pilih tab Paket untuk melihat pengaturan baru.
The Eric L. Anderson post "Duplikat 'System.Reflection.AssemblyCompanyAttribute' atribut" menggambarkan 3 pilihan:
sumber
.csproj
), karena mereka metadata bukan kode yang menggambarkan logika aktual. Saya berharap di masa depan semuanya dapat ditentukan dalam proyek! (Saat ini saya tidak dapat menentukan visibilitas COM, jadi saya meninggalkannyaAssemblyInfo.cs
.)Dalam kasus saya, beberapa file * .cs sementara yang dihasilkan selama kompilasi secara tidak sengaja ditambahkan ke proyek.
File-file itu dari
obj\Debug
direktori, jadi mereka seharusnya tidak ditambahkan ke solusi. Sebuah*.cs
wildcard pergi sedikit gila dan menambahkan mereka tidak benar.Menghapus file-file ini memperbaiki masalahnya.
sumber
Dalam kasus saya, di mana subfolder dalam proyek yang merupakan folder proyek itu sendiri:
berkas sistem:
larutan
Kemudian saya harus menghapus subfolder "tes" dari proyek "webapi".
sumber
Bagi saya itu adalah AssembyInfo.cs dan SolutionInfo.cs memiliki nilai yang berbeda. Jadi periksa file-file ini juga. Saya baru saja menghapus versi dari salah satunya.
sumber
Kesalahan saya terjadi karena, entah bagaimana, ada folder obj yang dibuat di dalam folder controller saya. Lakukan saja pencarian di aplikasi Anda untuk sebuah baris di dalam Assemblyinfo.cs Anda. Mungkin ada duplikat di suatu tempat.
sumber
Ini biasanya terjadi pada saya jika saya mengkompilasi proyek di Visual Studio 2017 & kemudian saya mencoba untuk membangun kembali & menjalankannya dengan .NET Core dengan perintah baris perintah "dotnet run".
Cukup menghapus semua folder "bin" & "obj" - keduanya di dalam "ClientApp" & langsung di folder proyek - memungkinkan perintah .NET Core "dotnet run" untuk membangun kembali & menjalankan dengan sukses.
sumber
Harus ada file AssemblyInfo.cs di proyek di sini:
Untuk mengatasi: - Hapus satu AssemblyInfo.cs
sumber
Namun solusi lain ketika memutakhirkan inti ke VS2017 adalah menghapusnya di file properties \ assemblyinfo.cs.
Karena mereka sekarang disimpan dalam proyek.
sumber
Saya menemukan jawaban ini di msdn, yang menjelaskan menandai file sebagai Konten dan kemudian Salin ke Output = Jika Baru. Lihat artikel di bawah ini:
https://social.msdn.microsoft.com/Forums/en-US/8671bdff-9b16-4b49-ba9e-227cc4df31b2/compile-error-cs0579-duplicate-assemblyversion-attribute?forum=vsgatk
GH
sumber
Saya menemukan hal yang sama ketika mencoba menambahkan alat GitVersion untuk memperbarui versi saya di AssemblyInfo.cs. Gunakan proyek VS2017 dan .NET Core. Jadi saya hanya mencampurkan kedua dunia. AssemblyInfo.cs saya hanya berisi info versi yang dihasilkan oleh alat GitVersion, csproj saya berisi hal-hal remaingin. Harap dicatat saya tidak menggunakan
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
saya menggunakan atribut yang terkait dengan versi saja (lihat di bawah). Lebih detail di sini properti AssemblyInfo .AssemblyInfo.cs
my.csproj berisi semua yang terkait dengan atribut assemblyu lainnya:
sumber
Saya mengalami masalah ini ketika proyek utama saya berada di folder yang sama dengan solusinya, kemudian saya memiliki proyek terpisah dalam solusi yang sama yang terletak di sub folder, dan proyek terpisah itu menggunakan proyek utama sebagai referensi. Hal ini menyebabkan proyek utama mendeteksi folder & folder sub folder yang membuat referensi rangkap.
sumber
Kesalahan saya adalah bahwa saya juga mereferensikan file lain dalam proyek saya, yang juga mengandung nilai untuk atribut "AssemblyVersion". Saya menghapus atribut itu dari salah satu file dan sekarang berfungsi dengan benar.
Kuncinya adalah memastikan bahwa nilai ini tidak dinyatakan lebih dari satu kali dalam file apa pun di proyek Anda.
sumber
Edit Anda AssemblyInfo.cs dan #jika! NETCOREAPP3_0 ... #endif
sumber
Saya mendapatkan kesalahan ini ketika saya menempatkan 2 proyek di direktori yang sama. Jika saya memiliki direktori dengan solusi dan saya meletakkan direktori Web dan Data yang terpisah di dalamnya mengkompilasi dengan benar.
sumber
Jika Anda mengalami masalah ini di Build Pipeline di Azure DevOps, coba letakkan Build Action sebagai "Konten" dan Salin ke Direktori Output sama dengan "Salin jika baru" di properti file AssembyInfo.cs.
sumber
Saya percaya folder Perpustakaan saya rusak oleh pembuatan perpustakaan kelas lain yang tidak sengaja. Saya menghapus semua file terkait perpustakaan tetapi masalah tetap ada. Saya menemukan solusinya dengan menghapus SEMUA folder bin dan obj di direktori. Bangunnya ok sebelumnya tetapi menemukan subfolder yang memiliki file assemblyinfo.cs yang sama.
sumber
Masalah ini adalah konflik referensi yang sebagian besar khas untuk VS 2017.
Saya memecahkan kesalahan yang sama ini dengan hanya mengomentari baris 7 -14 serta kode versi Majelis di bagian bawah halaman di AssemblyInfo.cs
Itu menghapus semua referensi duplikat dan proyek dapat membangun lagi.
sumber