Saya ingin menguji kelas inti dari sebuah plugin dengan secara langsung mereferensikan proyek plugin dan membuat instance kelas plugin. Ketika saya membuat proyek aplikasi Konsol uji dan menambahkan referensi proyek ke proyek plugin, saya mendapatkan ikon peringatan (segitiga kuning dengan tanda seru) di sebelah referensi dalam daftar Referensi.
Ketika saya malah menambahkan referensi ke dll, majelis membangun output dari plugin, saya tidak mendapat peringatan seperti itu. Apa yang bisa diceritakan oleh peringatan ini kepada saya?
.net
mef
project-reference
ProfK
sumber
sumber
Jawaban:
Seperti disebutkan dalam komentar pertanyaan, perbedaan versi .NET Framework antara proyek dapat menyebabkan ini. Periksa properti proyek baru Anda untuk memastikan bahwa versi default yang berbeda tidak digunakan.
sumber
Mengalami masalah yang sama dengan Aplikasi Web ASP.Net dan dua proyek kelas perpustakaan yang perlu direferensikan dalam Aplikasi Web. Saya tidak memiliki informasi yang diberikan tentang mengapa pembangunan gagal dan referensi tidak valid.
Solusi adalah untuk memastikan semua proyek memiliki Kerangka Target yang sama:
Dalam Visual Studio 2015 - proyek Klik Kanan> Properti> Aplikasi> Kerangka Target
Simpan, Bersihkan, dan buat kembali solusi. Referensi proyek tidak lagi muncul sebagai peringatan kuning dan solusi akan dikompilasi.
Aplikasi Web saya menargetkan .Net 4.5 sedangkan dua proyek kelas perpustakaan dependen lainnya menargetkan .Net v4.5.2
sumber
Untuk kedua (atau semua) proyek yang ingin Anda gunakan bersama:
Klik kanan pada proyek> Properti> Aplikasi> Target .NET framework
Pastikan bahwa kedua (atau semua) proyek Anda menggunakan versi .NET framework yang sama.
sumber
Pastikan semua versi sama untuk setiap proyek, klik setiap proyek dan lihat versi di sini Project> Properties> Application> Target .NET framework
Sebuah. Pergi ke Alat-alat> Nuget Package Manager> Package Manager Jenis Konsol Update-Package -Reinstall (jika tidak berfungsi lanjutkan ke 2.b )
b. INI KRITIS TAPI KEMUNGKINAN TERBESAR YANG AKAN BEKERJA . Hapus <Target> Mungkin dengan beberapa baris </ Target> biasanya ditemukan di bagian bawah .csproj.
Simpan, muat, dan bangun solusinya.
sumber
Instal ulang semua paket di semua proyek dari solusi saat ini:
sumber
Pastikan Anda memiliki proyek yang menargetkan versi kerangka kerja yang sama . Sebagian besar alasannya adalah bahwa proyek saat ini (di mana Anda menambahkan referensi proyek lain) menunjuk ke versi kerangka kerja .net yang berbeda dari yang lainnya .
sumber
Periksa NETFramework dll yang dimaksud & Proyek tempat Anda menambahkan DLL. Mis: DLL ==> didukungRuntime versi = "v4.0" Proyek ==> didukungRuntime versi = "v3.0"
Anda akan mendapatkan ikon peringatan. Solusi: Buat konsistensi versi dll.
sumber
Bagi saya, saya mengalami masalah ini ketika merujuk pustaka kelas .NET Standard 2.0 di aplikasi konsol .NET Framework 4.7.1. Ya, kerangka kerjanya berbeda, tetapi mereka kompatibel (.NET Standard seharusnya cocok dengan kedua .NET Core dan .NET Framework.) Saya mencoba membersihkan, membangun kembali, menghapus dan membaca referensi proyek, dll ... tanpa hasil . Akhirnya, berhenti dari Visual Studio dan membuka kembali menyelesaikan masalah.
sumber
Sudah lama sejak pertanyaan ini diajukan tetapi jika seseorang masih tertarik - Saya baru-baru ini bertemu dengan ikon yang sama. Saya sedang menyusun proyek C # .net menggunakan VS 2008. Saya menemukan VS tidak dapat menemukan rakitan untuk referensi tersebut. Ketika saya mengklik ganda VS menyegarkan referensi dan menghapus ikon pada beberapa [EDIT: yang SEKARANG bisa temukan]. Untuk referensi yang tersisa, saya harus mengkompilasi masing-masing majelis.
sumber
Menambahkan 2 sen saya ke jawaban @ kad81,
Pergi ke Visual Studio -> BUILD -> Configuration Manager
Di drop-down "Platform Solusi Aktif" di sudut kanan atas (milik saya adalah VS 2012), jika "Platform Campuran", ubah ke platform yang sesuai berdasarkan rakitan pihak ketiga referensi Anda.
Kemudian di setiap proyek dalam daftar, pastikan Anda memilih platform yang sama untuk semua proyek. (jika x86 tidak ada, maka pilih "", maka Anda dapat memilih "x86".)
Membangun kembali proyek perpustakaan terlebih dahulu dan kemudian merujuk proyek. Semoga ini membantu.
sumber
Coba tutup dan buka VS.
Tampaknya konyol tetapi setelah 1 jam mengikuti di atas dan menemukan semuanya berbaris OK. Saya memulai kembali VS 2017 dan masalahnya hilang.
sumber
Dalam inti Asp.net kadang-kadang menunjukkan peringatan jika Anda mengubah ruang nama proyek atau nama. Untuk menghapus peringatan semacam ini, Anda cukup Bongkar Proyek dan muat lagi. Jika masalah masih ada berarti Anda tidak dapat menemukan referensi Majelis Anda.
sumber
Saya memiliki ikon-ikon ini untuk alasan yang berbeda. Kami memiliki satu solusi besar untuk semua proyek kami (hampir 100). Saya membuat subseleksi proyek yang saya minati dan membuat solusi baru. Namun referensi mana referensi proyek bukan referensi ke dll yang dikompilasi ....
Setelah beberapa penelitian saya menemukan tautan ini di GitHub yang menjelaskan ini adalah perilaku baru di VS2015.
Pada halaman GitHub mereka menjelaskan solusi untuk mengubah referensi proyek menjadi referensi biner.
sumber
Untuk memperbaiki beberapa hal yang tidak berfungsi, sebaiknya hapus beberapa perpustakaan kadang-kadang, bagaimana tidak terdengar aneh.
Bagaimanapun, saya percaya masalahnya terlalu luas dan mungkin disebabkan oleh berbagai faktor , jadi ingin berbagi situasi / solusi saya.
Saya punya proyek (dibawa oleh pelanggan) dengan Xamarin Forms dan perpustakaan Telerik. Masalahnya secara umum terkait dengan komponen, perpustakaan mana yang tidak dimasukkan ke dalam folder paket, juga tidak tersedia melalui Nuget (yang berbayar).
Seluruh proyek Referensi adalah "kuning", tampak mengerikan dan menakutkan.
The solusi hanya untuk menghapus mereka Telerik referensi (termasuk beberapa kontrol dalam kode yang menggunakan itu). Tepat setelah itu semua referensi secara ajaib mendapatkan warna abu-abu normal yang umum dan kesalahan (kebanyakan) hilang.
"Sebagian besar" - karena pesan kesalahan "semua merah di sekitar" tentang "elemen tidak didefinisikan di mana saja" terkadang masih terjadi. Itu aneh, dan membawa ketidaknyamanan, tapi saya masih dapat mengkompilasi dan menjalankan proyek: hanya perlu membersihkan solusi, restart Visual Studio, berdoa sedikit, bersihkan lagi, hapus folder obj / bin, restart lagi, dan itu bekerja dengan baik.
Kuncinya adalah menghapus referensi perpustakaan tidak tersedia , karena pesan kesalahan mengatakan hal-hal lain. (Misalnya, sesuatu seperti "Xamarin.Build.Download.XamarinDownloadArchives tidak ditemukan atau tidak dapat menemukan sesuatu" dll, tetapi itu mungkin berarti Anda tidak memiliki beberapa referensi yang tersedia.
Kemudian hapus folder paket, muat ulang / buka kembali proyek / solusi, pergi ke "Kelola Paket Nuget" dan klik tombol "Kembalikan".
sumber
Menggunakan Visual Studio 2019 dengan semua proyek yang menargetkan Net Core 3.1 solusinya adalah:
sumber
Saya juga menghadapi masalah yang sama tetapi kasus saya agak berbeda dengan yang di atas. Saya mencoba membuka proyek yang dibuat di komputer yang berbeda. Saya menemukan bahwa path ke folder paket tidak diperbarui ketika Anda menambahkan referensi sehingga restart VS, mengubah versi .NET, atau rekomendasi yang disebutkan tidak menyelesaikan masalah. Saya membuka file csproj di notepad ++ dan mengoreksi semua path relatif ke folder paket. Kemudian; semua peringatan hilang. Semoga ini bisa membantu.
sumber
di VS 2017 Lakukan Bersih lalu Bangun
sumber
Terima kasih atas bantuannya. Ini adalah rincian bagaimana saya memperbaiki masalah saya:
Klik kanan pada proyek Anda> Properti
Di bawah Aplikasi, ubah Kerangka target. Dalam kasus saya, ImageSharp menggunakan .Net 4.6.1. Anda dapat menemukan ini di paket Anda. Config.
Buka referensi proyek Anda. Anda akan melihat SixLabors memiliki segitiga kuning. Anda harus memperbarui paket NuGet.
Klik kanan pada Referensi> Kelola Paket NuGet.
Perbarui SixLabors.
Anda mungkin memiliki sedikit pembaruan kode (lihat di bawah) tetapi ini memperbaiki masalah saya.
Ubah ImageSharp.Image menjadi ImageSharp.PixelFormats.Rgba32?
sumber
Dalam Visual Studio 2019, salah satu kerangka target proyek saya adalah .net core tetapi merujuk proyek lain yang kerangka kerja targetnya adalah standar .net. Saya mengubah semua proyek untuk referensi. Net standar dan ikon hilang. Untuk melihat apa proyek Anda, klik kanan dan klik properti dan lihat kerangka Target. Anda juga dapat mengklik normal proyek itu sendiri dan melihat tag <TargetFramework> di bawah <PropertyGroup>
sumber
Dalam solusi multi-proyek, Jika semuanya gagal ... Pada proyek startUp, periksa. Ketergantungan-> Majelis dan melihat apakah proyek referensi yang salah ada di sana. Hapus dan bangun kembali.
sumber