Apa 'tambahan konfigurasi' ini diperlukan untuk referensi .NET 2.0 dicampur modus perakitan di .NET 4.0 proyek?

Saya memiliki sebuah proyek di mana saya'd seperti untuk menggunakan beberapa .NET 4.0 fitur tapi inti persyaratan adalah bahwa saya dapat menggunakan Sistem.Data.SQLite kerangka yang disusun terhadap 2.X. Aku melihat lagi ini menjadi mungkin seperti jawaban yang diterima here tapi aku don't melihat bagaimana untuk benar-benar mencapai hal ini.

Ketika saya hanya mencoba dan menjalankan saya 4.0 proyek sementara referensi 2.X perakitan yang saya dapatkan:

modus Campuran perakitan dibangun terhadap versi 'v2.0.50727' runtime dan tidak dapat dimuat dalam 4.0 runtime tanpa tambahan informasi konfigurasi.

Apa "konfigurasi tambahan" diperlukan?

Mengomentari pertanyaan (3)
Larutan

Dalam rangka untuk menggunakan CLR 2.0 modus campuran perakitan, anda perlu memodifikasi Aplikasi anda.Config file meliputi:

<?xml version="1.0"?>
<konfigurasi>
<startup useLegacyV2RuntimeActivationPolicy="benar">
<supportedRuntime version="v4.0" sku=".NETFramework,Versi=v4.0"/>
</startup>
</konfigurasi>

Kuncinya adalah useLegacyV2RuntimeActivationPolicy bendera. Hal ini menyebabkan CLR untuk menggunakan versi terbaru (4.0) untuk memuat modus campuran perakitan. Tanpa ini, tidak akan bekerja.

Perhatikan bahwa ini hanya masalah untuk modus campuran (C++/CLI) rakitan. Anda dapat memuat semua berhasil CLR 2 majelis tanpa menentukan ini dalam app.config.

Komentar (8)

Ini forum post pada .NET Framework Developer Center. Hal ini mungkin memberikan beberapa wawasan.

(Tambahkan ke aplikasi's file konfigurasi.)





Komentar (1)

Tergantung pada versi framework anda're menargetkan, anda mungkin ingin melihat di sini untuk mendapatkan string yang benar:

http://msdn.microsoft.com/en-us/library/ee517334.aspx

Aku menghabiskan berjam-jam mencoba untuk mencari tahu mengapa saya melepaskan sasaran .Net 4.0 klien yang diperlukan versi lengkap. Saya menggunakan ini di akhir:



Komentar (0)

Setelah anda mengatur app.config file, visual studio akan menghasilkan salinan di folder bin yang bernama App.exe.config. Copy ini ke direktori aplikasi selama penyebaran. Terdengar jelas, tapi anehnya banyak orang melewatkan langkah ini. WinForms pengembang tidak digunakan untuk config file :).

Komentar (1)

Menggunakan 2,0 dan 4,0 majelis bersama-sama isn't cukup lurus ke depan.

URUTAN didukung kerangka deklarasi di app.config benar-benar memiliki efek pada pengecualian mode campuran yang dilemparkan. Jika anda flip deklarasi order anda akan mendapatkan modus campuran kesalahan. Ini adalah tujuan dari jawaban ini.

Jadi jika anda mendapatkan error di Windows Forms, aplikasi, , coba ini, sebagian besar aplikasi Windows Forms.




Atau jika proyek ini tidak Windows Form. Dalam sebuah proyek Web menambahkan ini ke web.config file.




Komentar (0)

Mampu memecahkan masalah dengan menambahkan "startup" elemen dengan "useLegacyV2RuntimeActivationPolicy" atribut set.




Tapi harus menempatkannya sebagai anak pertama elemen dari konfigurasi tag dalam Aplikasi.config untuk mengambil efek.

<?xml version="1.0"?>





  ......
....
Komentar (2)

Jika anda bekerja di sebuah layanan web dan v2.0 perakitan 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 pada saat runtime.

Komentar (0)

Di atas tidak bekerja untuk saya (saya bekerja di sebuah aplikasi web) - tapi ini tidak...

Mengedit sgen.exe.config file dalam folder (saya harus membuat terlebih dahulu); C:\Program Files (x86)\Microsoft Sdk\Windows\v8.0A\bin\NETFX 4.0 Alat (Ada juga satu di v7.0 folder, tapi saya tidak perlu mengubah yang satu ini, saya menggunakan VS2012)

Yang conents XML harus terlihat seperti ini (sama dalam jawaban sebelumnya)

<?xml version ="1.0"?>




Komentar (0)

Aku berlari ke dalam masalah ini ketika kita berubah menjadi Visual Studio 2015. Tidak ada jawaban atas bekerja untuk kita. Pada akhirnya kami mendapatkannya bekerja dengan menambahkan kode berikut di file konfigurasi untuk SEMUA sgen.exe executable pada mesin

<?xml version ="1.0"?>




Khususnya di lokasi ini, bahkan ketika kita targetkan .NET 4.0:

C:\Program Files (x86)\Microsoft Sdk\Windows\v10.0A\bin\NETFX 4.6 Alat

Komentar (3)

Saya menggunakan konfigurasi ini:




Bekerja untuk saya

Komentar (1)

Saya punya masalah ketika upgrade ke Visual Studio 2015 dan tidak ada solusi yang diposting di sini membuat perbedaan, meskipun config tepat lokasi untuk perubahan tidak. Saya tetap masalah ini dengan menambahkan konfigurasi ini:


Untuk: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\TE.ProcessHost.Dikelola.exe.config

Kemudian restart Visual Studio.

Komentar (0)

Saya menghadapi masalah serupa saat bermigrasi beberapa kode dari VS 2008 untuk VS 2010 Membuat perubahan pada Aplikasi.config diselesaikan masalah bagi saya.





Komentar (0)

Tambahkan yang berikut ini pada lokasi ini C:\Program Files (x86)\Microsoft Sdk\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64 FileName: sgen.exe.config(Jika anda tidak dapat menemukan file ini, membuat dan menambahkan satu)

 <?xml version ="1.0"?>












Lakukan ini diselesaikan masalah

Komentar (0)

Saya Menggunakan




It's bekerja tapi sebelum de </konfigurasi> tag jika startup tag doesn't bekerja dengan benar

Komentar (0)

Saya menemukan cara sekitar ini setelah 3-4 jam dari googling. Saya telah menambahkan kode berikut



Jika ini doesn't memecahkan masalah anda kemudian--> Dalam Proyek Referensi Klik Kanan-DLL di mana anda mendapatkan kesalahan --> Pilih Properties--> Check Versi Run-time --> Jika itu adalah v2.0.50727 maka kita tahu masalahnya. Masalahnya adalah :- anda mengalami Versi 2.0 dari masing-masing DLL. Solusinya adalah:- Anda dapat menghapus masing-masing DLLdari referensi Proyek dan kemudian men-download versi terbaru dari DLL&#39;s dari website yang sesuai dan menambahkan referensi dari versi terbaru referensi DLL maka akan bekerja.

Komentar (1)

Saya mengalami kesalahan yang sama, dan menghabiskan selamanya menambahkan menyarankan startup laporan untuk berbagai config file di solusi saya, mencoba untuk mengisolasi rangka mismatch. Tidak ada yang berhasil. Saya juga menambahkan startup informasi untuk saya skema XML. Yang tidak't membantu baik. Melihat file yang sebenarnya yang menyebabkan masalah (yang hanya akan mengatakan itu adalah "dipindahkan atau dihapus") mengungkapkan hal itu benar-benar Lisensi Compiler (LC).

Menghapus menyinggung lisensi.licx file tampaknya telah tetap masalah.

Komentar (0)

Saya juga punya masalah ini dengan perpustakaan kelas, Jika ada orang yang memiliki masalah dengan perpustakaan kelas yang ditambahkan ke aplikasi utama. Hanya menambahkan

untuk anda aplikasi utama yang kemudian akan dijemput oleh perpustakaan kelas.

Komentar (1)