Saya telah melihat ini sebentar sekarang dan belum menyelesaikannya. Saya mendapatkan pesan kesalahan berikut:
Compiler Error Message: CS1705: Assembly 'My.Model, Version=1.1.4422.23773, Culture=neutral,
PublicKeyToken=bfde95ba233094b2' uses
'Common, Version=3.3.4273.24368, Culture=neutral, PublicKeyToken=bfde95ba233094b2'
which has a higher version than referenced assembly
'Common, Version=3.3.4269.17112, Culture=neutral, PublicKeyToken=bfde95ba233094b2'
c:\WINDOWS\assembly\GAC_MSIL\Common\3.3.4269.17112__bfde95ba233094b2\Common.dll:
(Location of symbol related to previous error)
Server web menjalankan Server 2003. Saya pergi ke c: \ windows \ assembly dan ternyata ada 3 versi Common.dll yang terdaftar. Versi tertinggi yang terdaftar adalah 3.3.4269.17112
Saya menyalin dll dengan versi: 3.3.4273.24368 ke dalam direktori assembly. Saya kemudian mengkompilasi ulang dan menerapkan kembali kode saya (mungkin berlebihan tapi oh well). Ketika saya membuka browser saya di sesi baru dan membuka URL situs lagi, saya masih mendapat pesan yang sama.
Saya dapat menggunakan windows explorer dan memverifikasi Common.dll berversi lebih tinggi sekarang terdaftar juga.
Apa lagi yang dapat saya pertimbangkan untuk mengatasi masalah ini? Saya tidak ingin mengubah referensi di assembly saya untuk menunjuk ke versi yang lebih lama.
sumber
*.*
Nomor versi gila . Bangun kembali semuanya, satu-satunya cara untuk memastikan.Jawaban:
3 ide untuk Anda coba:
sumber
Saya mengalami kesalahan ini karena "Rebuild" tidak benar-benar membangun kembali.
Solusi: Tutup Visual Studio, benar-benar buka dan hapus folder bin, lalu buat ulang, mungkin berfungsi lebih baik.
Juga, terkadang Visual Studio berbohong tentang referensi, jadi periksa
HintPath
di.csproj
file Anda .sumber
Jika Anda menggunakan NuGet, ada baiknya pergi ke 'Kelola Paket NuGet Untuk Solusi' , temukan paket yang menyebabkan masalah dan perbarui. Itu kemudian harus membawa semua paket ke versi terbaru dan menyelesaikan masalah.
Layak dicoba karena cepat dan mudah.
sumber
csproj
pengeditan yang membosankan !Masalah saya adalah bahwa saya memiliki 2 proyek yang mereferensikan 2 salinan berbeda dari dll yang sama yang memiliki versi berbeda. Saya memperbaikinya dengan menghapus keduanya dan memastikan mereka mereferensikan file dll yang sama.
sumber
Salah satu kemungkinan penyebabnya adalah bahwa perakitan kedua dipasang di GAC sementara perakitan pertama, dengan nomor versi yang lebih tinggi, ditambahkan ke Referensi proyek. Untuk memverifikasi ini, klik dua kali rakitan dalam referensi proyek, dan periksa apakah ada rakitan lain dengan nama yang sama di penjelajah objek.
Jika demikian, gunakan utilitas gacutil.exe untuk menghapus instalasi kedua dari GAC. Misalnya, jika ini adalah rakitan 64-bit:
sumber
Buka Referensi dan tambahkan referensi baru dari file dll Anda yang menyebabkan masalah dan pastikan bahwa semua dll Anda dikompilasi terhadap versi yang sama. Ini berhasil untuk saya, saya harap ini juga berhasil untuk Anda.
sumber
Tim saya baru saja mengalami masalah ini dalam lingkungan build kami. Masalahnya disebabkan oleh perbedaan dalam elemen <HintPath> dari file .csproj.
Majelis umum kami memiliki jalur relatif yang benar ke direktori yang berisi rakitan referensi kami. Rakitan dependen memiliki jalur dari struktur direktori sebelumnya. Solusi berhasil dikompilasi pada mesin dev karena GAC menyelesaikan referensi dependen ke versi yang benar yang diinstal di C: \ Program Files. Lingkungan build memiliki instalasi legacy dari perakitan (meskipun seharusnya tidak memilikinya) yang kembali ke sana dan dengan demikian terjadi kesalahan. Memperbarui <HintPath> di editor teks memperbaiki masalah.
sumber
Masalahnya terlihat jika paket nuget bervariasi di beberapa proyek dalam solusinya.
Anda dapat memperbaiki ini dengan memperbarui paket nuget ke versi umum dengan semua PROYEK di SOLUSI
sumber
Punya masalah serupa. Masalah saya adalah bahwa saya memiliki beberapa proyek dalam solusi yang sama yang masing-masing mereferensikan versi tertentu dari DLL tetapi versi yang berbeda. Solusinya adalah menyetel 'Versi Spesifik' ke salah di semua properti dari semua referensi.
sumber
Saya tahu ini ditanyakan beberapa waktu yang lalu, setelah mencoba beberapa langkah di atas. Yang membantu saya adalah langkah-langkah berikut dan artikel ini .
Saya menemukan referensi dan mengubah PublicKeyToken dari yang direferensikan ke yang lebih lama.
Saya harap ini juga membantu.
sumber
Saya mengalami kesalahan yang sama. Saya memperbaiki kesalahan setelah menginstal
Microsoft.AspNetCore.ALL
ke proyek uji.sumber
Folder koleksi Handmade dll ini
Jika Anda solusi memiliki folder sampah untuk dll-file dari perpustakaan yang berbeda
lib
,source
,libs
, dllAnda bisa mendapatkan masalah ini jika Anda akan membuka solusi Anda (untuk waktu cemara) di Visual Studio. Dan folder pengumpulan dll Anda tidak terjawab karena entah bagaimana atau file dll konkret tidak terjawab.
Visual Studio akan mencoba secara diam-diam untuk mengganti referensi dll dengan sesuatu sendiri. Jika VS berhasil, maka referensi baru akan tersedia untuk solusi lokal Anda. Bukan untuk klon / pembayaran lain.
Yaitu Anda
<HintPath>
akan diabaikan dan file proyek Anda (.csproj) tidak akan diubah.Sebagai teladan saya
Ini
DocumentFormat.OpenXml
akan direferensikan dariC:\Program Files (x86)\Open XML SDK\V2.5\lib
bukan darisolution\..\lib
folder.Solusi cepat
Solusi yang tepat adalah bermigrasi ke pengelola paket NuGet.
sumber
untuk SharePoint, pastikan bahwa di bawah folder root Anda tidak memiliki folder "bin" dengan DLL Anda, jika demikian, hapus saja. (dan ubah "Salin Lokal" menjadi salah di VS).
sumber
Referensi dalam proyek situs web disimpan dalam file web.config-nya. Perbarui referensi di sana untuk memperbaiki kesalahan.
Saya menghabiskan beberapa waktu melihat semua referensi dalam solusi saya sebelum menyadari bahwa saya telah lupa tentang referensi di file web.config.
sumber
Saya memiliki masalah yang sama dengan UnitTestingProject, di mana dalam MainProject saya menggunakan "System.Web.Mvc, Version = 3.0.0.0" dan di UnitTestingProject saya menggunakan "System.Web.Mvc, Version = 3.0.0.1"
Ubah yang berikut di
<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\packages\Microsoft.AspNet.Mvc.3.0.50813.1\lib\net40\System.Web.Mvc.dll</HintPath> </Reference>
sumber
Saya mendapatkan ini setelah menambahkan Episerver Find ke situs kami dan menginstal paket NuGet yang sesuai untuk Episerver Find.
Perbaikannya mudah: perbarui semua add-on yang terkait dengan Episerver juga (meskipun tampaknya tidak terkait: CMS, CMS.TinyMCE, CMS.UI, dll.)
Setelah memperbarui semua add-on Episerver yang mungkin dan mengkompilasi ulang, kesalahannya hilang.
sumber
Dalam skenario saya, saya mengedit file .csproj untuk aplikasi dotnetCore saya. Saya perhatikan bahwa tag TargetFramework memiliki nilai netcoreapp2.1 dan tag RuntimeFrameworkVersion nilai 2.0.0 . Jadi saya mengubah RuntimeFrameworkVersion menjadi 2.1.0 , menyimpan, memulai ulang VS, dan membangun kembali dan kemudian menyelesaikan kesalahan.
Semoga ini bisa membantu Anda ...
Semoga berhasil,
Sugeshan
sumber
Dalam proyek Anda, temukan referensi System.Web.Mvc, periksa versinya.
Setelah itu klik kanan referensi -> assemblies dan cari system.web.mvc dan setup itu.
Masalahnya menyebabkan versi berbeda dari majelis ini .
Edit: Dari pada pilih kelola paket NuGet dan instal pembaruan (jika Anda memiliki banyak proyek, instal pembaruan juga.)
Pembaruan penting adalah Microsoft.AspNet.Mvc dan Microsoft.Net.Compilers jangan lupa!
sumber
Dalam tim kami, kami mengerjakan komputer yang berbeda dengan git. Seseorang memperbarui
dll
dan saya tidak memilikinya. Saya baru saja memperbarui referensi dependensi saya dan masalah terpecahkan.sumber
Saya mengalami masalah serupa, saya telah membuat DLL, yaitu A.dll, yang mereferensikan DLL lain, yaitu B.dll.
Saya membuat aplikasi C.exe dan mereferensikan DLL A.dll dan B.dll.
Solusi - Saat menghapus referensi B.dll dari c.exe saya dapat memperbaiki masalah.
Semoga ini membantu.
sumber