Hari ini setelah menerapkan beberapa perubahan ke situs C # MVC yang saya jalankan, saya kembali untuk membuat beberapa modifikasi lagi dan menemukan kesalahan ini:
Compiler yang hilang diperlukan anggota System.Runtime.CompilerServices.ExtensionAttribute..ctor
Kesalahannya agak kabur (selain deskripsinya, jelas) karena tidak memberi saya file, baris, atau kolom untuk referensi, hanya proyeknya. Juga, itu melempar kesalahan sebanyak 20 kali. Saya hanya membuat tiga perubahan pada kode antara waktu saya menerapkan (itu benar-benar berfungsi pada saat itu) dan sekarang. Saya mengembalikan perubahan saya dan masih melakukan kesalahan yang sama yang tidak masuk akal bagi saya.
Saya belum menemukan banyak informasi tentang kesalahan ini di SO atau Google, selain solusi orang ini dan beberapa referensi untuk beberapa kesalahan proyek Mono (saya tidak menggunakan Mono). Solusi yang diberikan orang di atas memerlukan penambahan definisi kelas yang akan memungkinkan compiler untuk menyelesaikan referensi. Saya tidak secara khusus ingin melakukan ini karena saya belum perlu melakukannya sampai titik ini dan itu hanya akan membuat kode saya kotor.
Hanya ingin tahu apakah ada yang pernah mengalami ini sebelumnya. Terima kasih sebelumnya!
sumber
Jawaban:
Kesalahan ini biasanya berarti proyek Anda sedang dikompilasi terhadap .NET 2.0 atau Anda tidak merujuk versi System.Core.dll yang benar
Untuk pertanyaan yang hampir sama, lihat Kesalahan saat menggunakan metode ekstensi di C #
sumber
Dalam kasus saya, itu karena proyek tidak merujuk
Microsoft.CSharp
. Setelah saya menambahkan referensi ke assembly itu, itu dikompilasi dengan baik.sumber
Saya tidak tahu apakah ada orang lain yang mengalami ini, tetapi saya tiba-tiba mengalami kesalahan ini setelah menambahkan beberapa
dynamic
jenis kode yang menggunakan dan memasukkan WebAPI ke dalam proyek yang berasal dari aplikasi TypeScript di VS2013. Cukup menambahkan referensi ke Microsoft.CSharp menyelesaikan masalah saya.Semoga ini bisa membantu orang lain.
sumber
Saya mengalami situasi ini juga hari ini. Dalam kasus saya, saya mereferensikan Newton.Json.Net dll v3.5 di aplikasi .NET 4.0 saya. Saya menyadari bahwa saya bahkan tidak menggunakan pustaka ini, jadi setelah saya menghapusnya dari referensi saya, itu tidak lagi memberi saya kesalahan kompiler.
Masalah terpecahkan !!!
sumber
Kesalahan sebenarnya berasal dari fakta bahwa rakitan 2.0 Anda yang menyebabkan kesalahan berisi kode ini:
namespace System.Runtime.CompilerServices { public class ExtensionAttribute : Attribute { } }
Kode Di Atas memungkinkan Majelis .NET 2.0 menggunakan metode ekstensi (lihat Menggunakan metode ekstensi di .NET 2.0? ). Meskipun membingungkan compiler jika Anda menargetkan .NET 4.0 dan mereferensikan Majelis 2.0 (berisi kode di atas) karena mscorlib.dll (4.0) berisi kelas yang sama di namespace yang sama.
Saya memperbaiki ini
sumber
Menulis kode ini di suatu tempat dalam proyek Anda dapat memecahkan masalah Anda. Ini bekerja untuk saya
namespace System.Runtime.CompilerServices { public class ExtensionAttribute : Attribute { } }
sumber
NLog.dll 2.0 yang dirujuk dari proyek .NET 4.0 juga dapat menyebabkan hal ini.
sumber
Mungkin Anda menggunakan
dynamic
kata kunci dalam proyek perpustakaan Kelas .NetStandard. Jika demikian, Anda perlu menambahkan referensi keMicrosoft.CSharp
perpustakaan dalam proyek tersebut. Semoga ini akan menyelesaikan masalah Anda.sumber
Saya tidak memiliki solusi yang benar, tetapi saya akan menambahkan titik data saya:
Dalam kasus saya, kesalahan ini disebabkan oleh referensi GoogleSearchAPINet20
Inilah yang terjadi:
Saya sama sekali tidak mereferensikan System.Core.dll dalam solusi saya dan kerangka kerja target saya adalah .NET 4.
Saya agak kesal pada saat ini ...
sumber
Dapatkan kesalahan ini saat mencoba menggunakan Tugas asinkron terhadap .NET 4.0. Memperbarui Target Framework menjadi 4.5.2 memperbaiki masalah.
sumber
Saya mencapai set pengecualian yang sama setelah saya menambahkan beberapa metode async ke proyek winforms. Saya perlu meningkatkan versi .NET saya dari 4 menjadi 4,5
sumber
Bagi saya, masalah terjadi ketika saya menambahkan metode asynchronous dengan async Task menunggu di proyek .net4.0 saya!
Dengan versi .NET-Framework 4.5 sebelumnya, Anda harus menginstal paket ini:
atau
info lebih lanjut tentang Nuget atau Nuget
sumber