Saya memiliki solusi yang berisi situs web dan perpustakaan kelas di Visual Studio 2008.
Saya kemudian memiliki proyek situs web lain di luar solusi yang perlu merujuk perpustakaan kelas. Saya klik kanan folder Bin atau Proyek dan pilih Tambahkan Referensi, lalu pilih Proyek Perpustakaan Kelas saya, ia menambahkan 15 atau lebih DLL yang diperlukan perpustakaan kelas ke folder bin situs web, tetapi tidak ada file .cs yang mengenali pernyataan penggunaan.
using MyLibrary.MyFolder;
Ia mengatakan bahwa itu tidak dapat menyelesaikannya, dan ReSharper hanya mengatakan itu dapat dihapus dengan aman karena tidak digunakan.
ReSharper dapat mengenali bahwa ia membutuhkan referensi dan menyarankan bahwa ia "Referensi MyLibrary dan gunakan MyFolder". Saya tidak yakin mengapa ini menyarankan saya menambahkan referensi yang sudah saya miliki. Ketika saya mengikuti saran, saya mendapatkan kesalahan
"Gagal mereferensikan modul. Mungkin, referensi akan menghasilkan dependensi melingkar di antara project."
Saya telah mencoba membuka halaman properti situs web dan menghapus semua referensi dan menambahkannya kembali, tetapi memberikan kesalahan yang sama. Ada ide mengapa ini tidak berhasil?
sumber
Jawaban:
Selain itu, periksa apakah proyek solusi baru dijalankan dengan kerangka kerja yang kompatibel dengan proyek yang Anda coba sertakan. Saya mencoba memasukkan referensi ke proyek 4.0 dalam proyek 3.5.
sumber
Saya menemukan cara untuk memperbaiki masalah ini (setidaknya bagi saya). Mengapa berhasil, saya tidak yakin, tetapi berhasil. (Saya baru saja mencoba melawan situs web kedua yang mengalami masalah yang sama dan solusi berikut juga berfungsi untuk itu).
Saya mencoba pembersihan normal proyek dan membangun kembali, mematikan semua contoh Visual Studio saya dan memulai ulang, bahkan mencoba memulai ulang komputer saya.
Apa yang benar-benar berhasil adalah membuka proyek di Visual Studio, menutup semua tab yang terbuka, dan kemudian mematikannya.
Sebelumnya saya membiarkan tab terbuka karena menurut saya itu tidak penting (dan saya hampir tidak pernah menutup tab yang saya gunakan).
sumber
Satu kemungkinan adalah bahwa versi target .NETFramework perpustakaan kelas lebih tinggi daripada proyek.
sumber
Saya memiliki masalah yang sama, apakah semua referensi saya akan diganggu oleh Resharper - Solusi yang berhasil untuk saya adalah menghapus Cache Resharper dan kemudian memulai ulang VS
alat-> opsi-> resharper-> opsi-> umum-> klik tombol hapus cache dan mulai ulang VS
sumber
Saya memiliki masalah serupa di mana VS terkadang membangun dan terkadang tidak. Setelah beberapa pencarian dan upaya, saya menemukan bahwa saya memiliki referensi ambigu ke kelas dengan nama yang sama di perpustakaan yang berbeda ('FileManager'). Proyek yang tidak akan dibangun adalah Tes Unit saya yang mereferensikan semua modul dalam solusi saya. Menerapkan referensi ke modul tertentu menyelesaikan masalah untuk saya.
Maksud saya adalah: Daripada menyalahkan ReSharper atau VS, mungkin ada baiknya untuk memeriksa ulang apakah memang tidak ada semacam referensi melingkar. Lebih dari sering, kelas dengan nama yang sama dalam modul yang berbeda dapat menyebabkan kebingungan dan seringkali merupakan gejala desain yang buruk (seperti dalam kasus saya).
sumber
The type or namespace name 'A' does not exist in the namespace 'B'
. Perhatikan bahwa tidak ada peringatan yang muncul untuk ini ...Ini terdengar seperti masalah yang mirip dengan ReSharper:
http://www.jetbrains.net/devnet/thread/275827
Menurut salah satu pengguna di utas yang memaksa build memperbaiki masalah (CTRL + Shift + B) setelah build pertama ..
Kedengarannya seperti masalah dengan ReSharper khususnya dalam kasus mereka .. Sudahkah Anda mencoba membangun terlepas dari peringatan dan kemungkinan kesalahan palsu?
sumber
Karena keduanya berada dalam solusi yang sama, alih-alih menambahkan referensi ke DLL, tambahkan referensi ke proyek perpustakaan kelas itu sendiri (dialog Tambahkan Referensi akan memiliki tab untuk ini).Ahh, ini solusi yang berbeda. Merindukan itu. Bagaimana kalau Anda mencoba daripada menambahkan referensi ke proyek menambahkan referensi ke DLL terkompilasi perpustakaan kelas Anda. Dialog Add Reference memiliki tab Browse yang melakukan ini.
sumber
Setelah mengonfirmasi, versi asp.net yang sama digunakan. Saya menghapus proyek. membersihkan solusinya dan menambahkan kembali proyek. inilah yang berhasil untuk saya.
sumber
Jika Anda mereferensikan rakitan untuk proyek yang berada dalam solusi yang sama, tambahkan referensi Proyek (menggunakan tab "Proyek") daripada menelusuri dll di folder \ bin \ Debug (atau \ bin \ Release) (menggunakan Tab "Jelajahi"). Lihat tangkapan layar di bawah. Hanya telusuri file assembly / dll jika dianggap sebagai assembly eksternal.
sumber
Saya menghapus * .csproj.user (file resharper) dari proyek saya, kemudian, tutup semua tab dan buka kembali. Setelah itu saya dapat mengkompilasi proyek saya dan tidak ada peringatan resharper.
sumber
Saya punya masalah ini. Aku butuh waktu lama untuk mengetahuinya. Saya memiliki orang-orang di bahu saya untuk membantu. Kami membangun kembali, membersihkan dan memulai kembali Visual studio dan ini tidak memperbaikinya. Kami menghapus dan menambahkan kembali referensi ...
Semua sia-sia .... Sampai!
Solusi untuk masalah saya adalah bahwa deklarasi kelas saya dieja dengan tidak benar.
Sebelum Anda mulai menghakimi saya dengan kasar, izinkan saya menjelaskan mengapa itu tidak bodoh, dan juga mengapa kesalahan ini dapat dilakukan bahkan oleh programmer paling cerdas sekalipun.
Karena kesalahan terjadi di awal nama, kesalahan itu tidak muncul di daftar kelas Intellisense ketika saya mulai mengetik.
misalnya
Nama kelas:
Message.cs
Pernyataan:
public class Massage { //code here }
Sekilas dan dalam font kecil, Pijat terlihat identik dengan Message.
Mengetik M mencantumkan terlalu banyak kelas, jadi saya mengetik e, yang tidak muncul dalam versi yang salah ketik, yang memberi kesan bahwa kelas tersebut tidak diambil oleh kompilator.
sumber
Saya memiliki masalah serupa di VS 2010, saat membuat proyek uji untuk aplikasi MVC 2. Gejala-gejalanya identik.
Pesan dari ReSharper agak menyesatkan. Untuk sesaat saya sepenuhnya mengabaikan ReSharper dan melakukannya dengan "cara VS manual":
Pada tahap ini saya mendapat kesalahan kompilasi: Saya seharusnya mereferensikan
System.Web.Mvc
perakitan dalam proyek pengujian saya (menghela napas). Menambahkan referensi ini menyebabkan proyek dikompilasi. Masalah ReSharper tetap ada, tetapi runner pengujian ReSharper berfungsi.Saat saya memulai ulang VS, kesalahan ReSharper juga hilang. Saya tidak yakin apakah perlu memulai ulang - cukup menutup file .cs mungkin sudah cukup.
Mulai sekarang, saat saya melihat pesan ReSharper
Saya akan membaca
sumber
Perbaikan lain yang mungkin berhasil untuk saya:
Jika Anda memiliki Assembly A, yang mereferensikan Assembly B, yang keduanya mereferensikan assembly X non-proyek (eksternal), dan kode Assembly B tidak akan mengenali bahwa Anda telah mereferensikan X, maka coba langkah-langkah berikut secara berurutan:
Rupanya, VS tidak akan mengenali referensi ke rakitan eksternal dalam proyek yang merupakan ketergantungan proyek lain yang sudah merujuk ke eksternal. Dengan menyiapkan referensi lagi dari awal, Anda mengatasi hal ini. Ini sangat aneh.
sumber
Saya menghadapi masalah ini, dan saya menyelesaikannya dengan menutup studio visual, membuka kembali studio visual, membersihkan dan membangun kembali solusinya. Ini berhasil untuk saya.
sumber
Jika menggunakan TFS, melakukan Get latest (rekursif) tidak selalu berfungsi. Sebagai gantinya, saya memaksa mendapatkan yang terbaru dengan mengklik Kontrol sumber => Dapatkan versi tertentu lalu mengklik kedua kotak. Ini cenderung berhasil.
Jika masih tidak berhasil maka menghapus file suo (biasanya ditemukan di tempat yang sama dengan solusi) memaksa visual studio untuk mendapatkan semua file dari sumber (dan kemudian membangun kembali file suo).
Jika tidak berhasil, coba tutup semua file Anda yang terbuka dan tutup Visual studio. Ketika Anda membuka studio Visual berikutnya, itu harus diperbaiki. Ada bug pencatat yang diselesaikan dengan cara ini.
sumber
Saya telah menemukan masalah serupa baru-baru ini. Saya bekerja di Visual Studio 2015 dengan Resharper Ultimate 2016.1.2. Saya mencoba menambahkan kelas baru ke basis kode saya saat mencoba merujuk kelas dari rakitan lain tetapi Resharper akan memberikan kesalahan untuk paket itu.
Dengan bantuan rekan kerja, saya menemukan bahwa kelas yang direferensikan ada di namespace global dan tidak dapat diakses dari kelas baru karena disembunyikan oleh entitas lain dengan nama yang sama yang ada di namespace saat ini.
Menambahkan kata kunci 'global ::' sebelum namespace yang diperlukan membantu saya mereferensikan kelas yang sebenarnya saya cari. Rincian lebih lanjut tentang ini dapat ditemukan di halaman yang tercantum di bawah ini:
https://msdn.microsoft.com/en-us/library/c3ay4x3d.aspx
sumber
Jika kedua proyek terdapat dalam solusi yang sama, akan lebih tepat jika Anda menambahkan referensi untuk proyek yang Anda butuhkan, bukan dll yang dikompilasi.
sumber
Sayangnya, satu-satunya hal yang berhasil untuk saya adalah sepenuhnya menghapus dan membuat ulang proyek perpustakaan kelas, setelah menyalin sementara file kelas di dalamnya di tempat lain. Hanya dengan demikian proyek web ASP.Net akan mengenali
using
pernyataan yang merujuk ke proyek perpustakaan kelas. Ini dengan Visual Studio 2010, tidak menggunakan ReSharper.sumber
Saya memiliki masalah serupa. Apa yang berhasil bagi saya adalah saya telah menambahkan Perpustakaan Kelas yang salah dari studio visual . Saya menambahkan dengan menggunakan fitur pencarian studio visual.
Yang perlu saya lakukan adalah Add New Project> Visual C #> Class Library . Dan pustaka kelas yang baru ditambahkan ini adalah yang benar dan sekarang dapat ditambahkan sebagai referensi untuk proyek apa pun.
sumber
Anda mungkin lupa menambahkan referensi perpustakaan kelas yang perlu Anda impor.
Klik kanan perpustakaan kelas yang ingin Anda impor (yang berisi beberapa perpustakaan kelas yang diimpor), -> Tambah-> Referensi (Pilih Proyek-> Solusi-> pilih perpustakaan kelas yang ingin Anda impor dari-> OK)
sumber