Saya punya proyek di mana saya ingin menggunakan beberapa fitur .NET 4.0 tetapi persyaratan inti adalah bahwa saya dapat menggunakan kerangka kerja System.Data.SQLite yang dikompilasi dengan 2.X. Saya melihat penyebutan ini menjadi mungkin seperti jawaban yang diterima di sini, tetapi saya tidak melihat bagaimana cara mencapainya.
Ketika saya hanya mencoba dan menjalankan proyek 4.0 saya sambil mereferensikan perakitan 2.X saya mendapatkan:
Rakitan mode campuran dibangun melawan versi 'v2.0.50727' dari runtime dan tidak dapat dimuat dalam runtime 4.0 tanpa informasi konfigurasi tambahan.
Apa "konfigurasi tambahan" yang diperlukan?
SGEN
, maka perbaikan harus dalam filesgen.exe.config
, di sebelahsgen.exe
. Misalnya, untuk VS 2015, buatC:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\sgen.exe.config
. Sumber: Rakitan mode campuran<configuration><startup useLegacyV2RuntimeActivationPolicy="true"/></configuration>
Jawaban:
Untuk menggunakan perakitan mode campuran CLR 2.0 , Anda perlu memodifikasi file App.Config Anda untuk memasukkan:
Kuncinya adalah
useLegacyV2RuntimeActivationPolicy
bendera. Ini menyebabkan CLR menggunakan versi terbaru (4.0) untuk memuat rakitan mode campuran Anda. Tanpa ini, itu tidak akan berhasil.Perhatikan bahwa ini hanya penting untuk rakitan mode campuran (C ++ / CLI). Anda dapat memuat semua majelis CLR 2 yang dikelola tanpa menentukan ini dalam
app.config
.sumber
Posting forum ini di Pusat Pengembang .NET Framework. Mungkin memberikan beberapa wawasan.
(Tambahkan ke file konfigurasi aplikasi.)
sumber
Bergantung pada versi kerangka kerja apa yang Anda targetkan, Anda mungkin ingin melihat di sini untuk mendapatkan string yang benar:
http://msdn.microsoft.com/en-us/library/ee517334.aspx
Saya menghabiskan waktu berjam-jam untuk mencari tahu mengapa saya menargetkan rilis. Net 4.0 klien membutuhkan versi lengkap. Saya menggunakan ini pada akhirnya:
sumber
Setelah Anda mengatur file app.config , studio visual akan menghasilkan salinan di folder bin bernama App.exe.config . Salin ini ke direktori aplikasi selama penerapan. Kedengarannya jelas tetapi mengejutkan banyak orang melewatkan langkah ini. Pengembang WinForms tidak digunakan untuk mengkonfigurasi file :).
sumber
Menggunakan rakitan 2.0 dan 4.0 secara bersamaan tidak cukup mudah.
ORDER dari deklarasi framework yang didukung di app.config sebenarnya memiliki efek pada pengecualian mode campuran yang dilemparkan. Jika Anda membalik urutan deklarasi Anda akan mendapatkan kesalahan mode campuran. Inilah tujuan dari jawaban ini.
Jadi jika Anda mendapatkan kesalahan dalam aplikasi Windows Forms, coba ini, sebagian besar aplikasi Windows Forms.
Atau jika proyek tersebut bukan Windows Form. Dalam proyek Web, tambahkan ini ke file web.config.
sumber
Mampu menyelesaikan masalah dengan menambahkan elemen "startup" dengan set atribut "useLegacyV2RuntimeActivationPolicy" .
Tetapi harus menempatkannya sebagai elemen anak pertama dari tag konfigurasi di App.config agar dapat berfungsi .
sumber
version="v2.0"
?Di atas tidak bekerja untuk saya (saya sedang mengerjakan aplikasi web) - tetapi ini ...
Edit file sgen.exe.config di folder (saya harus membuatnya terlebih dahulu); C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools (Ada juga satu di folder v7.0, tapi saya tidak perlu mengubahnya, saya menggunakan VS2012)
Conents dari XML akan terlihat seperti ini (sama dengan jawaban sebelumnya)
sumber
Jika Anda bekerja di layanan web dan perakitan v2.0 adalah ketergantungan yang telah dimuat oleh WcfSvcHost.exe maka Anda harus menyertakan
di .. \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ WcfSvcHost.exe.config file
Dengan cara ini, Visual Studio akan dapat mengirim informasi yang tepat melalui loader saat runtime.
sumber
Saya mengalami masalah ini ketika kami berubah ke Visual Studio 2015 . Tidak satu pun dari jawaban di atas bekerja untuk kita. Pada akhirnya kami berhasil dengan menambahkan file konfigurasi berikut ke SEMUA executable sgen.exe pada mesin
Khususnya di lokasi ini, bahkan ketika kami menargetkan .NET 4.0:
C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.6 Alat
sumber
Saya menggunakan konfigurasi ini:
Bekerja untukku
sumber
Saya punya masalah ini ketika memutakhirkan ke Visual Studio 2015 dan tidak ada solusi yang diposting di sini membuat perbedaan, meskipun konfigurasi benar lokasi untuk perubahan tidak. Saya memperbaiki masalah ini dengan menambahkan konfigurasi ini:
Kepada: C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ TE.ProcessHost.Managed.exe.config
Kemudian restart Visual Studio.
sumber
Saya menemukan jalan keluar setelah 3-4 jam googling. Saya telah menambahkan yang berikut ini
Jika ini tidak menyelesaikan masalah Anda kemudian -> Dalam Referensi Proyek di
Right Click on DLL
mana Anda mendapatkan kesalahan ->Select Properties
->Check the Run-time Version
-> Jika ituv2.0.50727
maka kita tahu masalahnya. Masalahnya adalah: - Anda mengalami2.0 Version of respective DLL.
Solusi adalah: - Anda dapatdelete the respective DLL
dari referensi Proyek dan kemudiandownload the latest version of DLL's
dari situs web yang sesuai dan menambahkan referensi dari referensi DLL versi terbaru maka itu akan berfungsi.sumber
Saya mengalami kesalahan yang sama ini, dan menghabiskan selamanya menambahkan pernyataan startup yang disarankan ke berbagai file konfigurasi dalam solusi saya, mencoba untuk mengisolasi kerangka ketidakcocokan. Tidak ada yang berhasil. Saya juga menambahkan informasi startup ke skema XML saya . Itu juga tidak membantu. Melihat file aktual yang menyebabkan masalah (yang hanya akan mengatakan itu "dipindahkan atau dihapus") mengungkapkan sebenarnya itu adalah Compiler Lisensi (LC).
Menghapus file lisensi.licx yang menyinggung tampaknya telah menyelesaikan masalah.
sumber
Saya menghadapi masalah serupa saat memigrasi beberapa kode dari VS 2008 ke VS 2010 Membuat perubahan pada file App.config menyelesaikan masalah untuk saya.
sumber
Tambahkan berikut ini di lokasi ini C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools \ x64 Nama File: sgen.exe.config (Jika Anda tidak menemukan file ini, buat dan tambahkan satu)
Melakukan ini menyelesaikan masalah
sumber
Saya menggunakan
Ini berfungsi tetapi tepat sebelum de
</configuration>
tag jika tidak, tag startup tidak berfungsi dengan baiksumber
Juga saya punya masalah dengan perpustakaan kelas, Jika ada yang punya masalah dengan perpustakaan kelas ditambahkan ke aplikasi utama Anda. Cukup tambahkan
untuk Anda aplikasi utama yang kemudian akan dipilih oleh perpustakaan kelas.
sumber