Proyek yang direferensikan menjadi "hilang" pada Waktu Kompilasi

102

Saya memiliki solusi C # dengan dua proyek: layanan (proyek utama) dan logger. Layanan menggunakan kelas dari logger. Saya telah menambahkan Referensi ke proyek logger dalam proyek layanan. Pada waktu desain, pelengkapan otomatis berfungsi dengan baik: kelas logger terlihat, referensi yang saya gunakan diwarnai dengan tepat.

Saya Membangun kembali solusi, dan ada yang salah. Referensi tidak lagi dikenali: "Nama 'Pencatatan' tidak ada dalam konteks saat ini 'dan kelas tidak lagi ada di pelengkapan otomatis. Menghapus dan memasang kembali referensi membuat saya kembali ke keadaan dasar yaitu membuat pengenal terlihat untuk pelengkapan otomatis.

Saya telah mem-boot ulang, membersihkan semua cache, memastikan ini adalah satu-satunya contoh VS 2010 yang berjalan di mesin saya.

Apakah ada sesuatu yang jelas (jelas) yang saya lewatkan?

Bob Kaufman
sumber

Jawaban:

158

Periksa jenis build Anda dari setiap project di bawah properti project - Saya yakin satu atau lainnya akan dijadikan sebagai dasar build .NET XX - Client Profile.

Dengan versi yang tidak konsisten, khususnya dengan satu keberadaan Client Profiledan yang lainnya tidak, maka ini berfungsi pada waktu desain tetapi gagal pada waktu kompilasi. Gotcha nyata.

Ada sesuatu yang lucu terjadi di Visual Studio 2010 bagi saya, yang membuat proyek tetap tampak acak Client Profile, terkadang ketika saya membuat proyek, dan terkadang beberapa hari kemudian. Mungkin beberapa pintasan keyboard yang tidak sengaja saya tekan ...

joshcomley
sumber
1
Saya yakin Anda benar ... dan saya malu jika demikian karena tidak mengingat pertanyaan serupa yang saya tanyakan bulan lalu! stackoverflow.com/questions/3991361/…
Bob Kaufman
6
@Bob Itu terus terjadi pada saya, dan seperti Anda memiliki pertanyaan sebelumnya, setiap kali itu terjadi, setidaknya selama beberapa menit saya benar-benar bingung dengan semuanya sampai saya ingat "Oooooh, tunggu, Klien ** ** ing Profile "
joshcomley
4
Saya juga mengalami masalah ini dengan VS2012. Ternyata bukan masalah Profil Klien, tetapi proyek yang direferensikan berada di 4.5 dan proyek baru yang direferensikan telah default ke 4.0. Bump yang satu itu ke 4,5 dan masalah hilang. Solusinya sama kok, cuma variasi lain.
Brad Mathews
Ini terjadi pada saya baru-baru ini di VS 2013. Proyek ini adalah default 4.5 tetapi salah satu perpustakaan dibangun di 4.5.2. Jika proyeknya adalah 4.5.2 dan salah satu perpustakaannya adalah 4.5 atau 4.5.1, itu akan berhasil. Tapi bukan sebaliknya.
ahwm
4

Pastikan kedua proyek memiliki versi kerangka target yang sama di sini: klik kanan pada proyek -> properti -> aplikasi (tab) -> kerangka target

Juga, pastikan bahwa proyek "logger" (yang ingin Anda sertakan dalam proyek utama) memiliki jenis keluaran "Perpustakaan Kelas" di: klik kanan pada proyek -> properti -> aplikasi (tab) -> jenis keluaran

Terakhir, Bangun kembali solusi.

manar
sumber