Ce 'de configurare suplimentare' este necesar să o referință .NET 2.0 amestecat modul de asamblare într-o .NET 4.0 proiect?

Am un proiect în care am'd place să folosească unele .NET 4.0 caracteristici, dar o cerință de bază este că nu pot folosi Sistemul.Date.SQLite-cadru care este compilat împotriva 2.X. Văd o mențiune de acest lucru fiind posibil astfel ca acceptat raspunsul aici dar eu nu't vedea cum de a realiza efectiv acest lucru.

Când încerc să-mi conduc 4.0 proiectului, în timp ce referirea la 2.X asamblare primesc:

modul Mixt ansamblul este construit împotriva versiune 'v2.0.50727' de execuție și nu poate fi încărcat de la 4.0 runtime fără suplimentare informații de configurare.

Ce "configurare suplimentare" este necesar?

Comentarii la întrebare (3)
Soluția

În scopul de a utiliza un CLR 2.0 modul mixt de asamblare, aveți nevoie pentru a modifica Aplicația.Fișier de configurare pentru a include:

<?xml version="1.0"?>
<configurare>
<pornire useLegacyV2RuntimeActivationPolicy="adevărat">
<supportedRuntime version="v4.0" sku=".NETFramework,Versiune=v4.0"/>
</pornire>
</configurare>

Cheia este useLegacyV2RuntimeActivationPolicy pavilion. Acest lucru provoacă CLR pentru a utiliza cea mai recentă versiune (4.0) pentru a încărca în mod mixte de asamblare. Fără acest lucru, nu va funcționa.

Rețineți că acest lucru contează doar pentru modul mixt (C++/CLI) ansambluri. Puteți încărca toate gestionate CLR 2 ansambluri fără a preciza acest lucru în app.config`.

Comentarii (8)

Acest post pe forum pe .NET Framework Developer Center. S-ar putea oferi anumite detalii.

(Se adaugă la app's config.)





Comentarii (1)

În funcție de ce versiune de cadrul te're de orientare, poate doriți să te uiți aici pentru a obține șirul corectă:

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

Am pierdut ore întregi încercând să-mi dau seama de ce eliberarea mea de orientare .Net 4.0 client necesare versiunea completă. Am folosit acest lucru în cele din urmă:



Comentarii (0)

Odată ce ați stabilit app.config fișier, visual studio va genera o copie în folderul bin nume App.exe.config. Copia acest lucru pentru directorul aplicației în timpul implementării. Suna evident, dar în mod surprinzător o mulțime de oameni dor de acest pas. WinForms dezvoltatorii nu sunt utilizate pentru fișierele de configurare :).

Comentarii (1)

Folosind 2.0 și 4.0 ansambluri împreună e't destul de drept înainte.

ORDINEA de susținut cadru declarații în aplicație.config au de fapt un efect asupra excepție de modul mixt a fost aruncat. Dacă flip declarația comanda vei primi modul mixt de eroare. Acesta este scopul acestui răspuns.

Deci, dacă primiți eroare într-o aplicație Windows Forms, , încercați acest lucru, mai ales Windows Forms aplicații.




Sau în cazul în care proiectul nu este Forma de Windows. Într-un proiect Web adăuga acest la web.fișier de configurare.




Comentarii (0)

A fost capabil să rezolve problema prin adăugarea "pornire" element cu "useLegacyV2RuntimeActivationPolicy" set de atribute.




Dar a trebuit să-l loc ca primul copil element de configurare a tag-ul în Aplicația.config pentru a intra în vigoare.

<?xml version="1.0"?>





  ......
....
Comentarii (2)

Dacă se lucrează într-un serviciu web și v2.0 asamblare este o dependență care a fost încărcat de către WcfSvcHost.exe apoi, trebuie să includă



în ..\Microsoft Visual Studio 10.0\Common7\IDE\ WcfSvcHost.exe.config fișier

În acest fel, Visual Studio va fi capabil de a transmite informații prin intermediul încărcător în timpul rulării.

Comentarii (0)

Cele de mai sus nu au de lucru pentru mine (lucrez la o aplicatie web) - dar asta s-a...

Editați sgen.exe.config în directorul (am avut de a crea o prima); C:\Program Files (x86)\Microsoft Sdk\Windows\v8.0A\bin\NETFX 4.0 Instrumente (Există, de asemenea, unul în v7.0 folder, dar n-am nevoie să schimbi asta, eu sunt, folosind VS2012)

La conents XML ar trebui să arate astfel (același în răspunsurile anterioare)

<?xml version ="1.0"?>




Comentarii (0)

M-am întâlnit cu această problemă, atunci când am schimbat la Visual Studio 2015. Nici unul dintre raspunsurile de mai sus a lucrat pentru noi. În final, am luat-o de lucru prin adăugarea următoarelor config pentru a TOATE sgen.exe executabilele de pe masina

<?xml version ="1.0"?>




În special în această locație, chiar și atunci când am fost de direcționare .NET 4.0:

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

Comentarii (3)

Am folosit acest config:




A lucrat pentru mine

Comentarii (1)

Am avut această problemă, atunci când upgrade la Visual Studio 2015 și nici una dintre solutiile postate aici a făcut nici o diferență, deși config este drept locație pentru schimbare nu este. Am rezolvat această problemă prin adăugarea această configurație:


A: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\TE.ProcessHost.A reușit.exe.config

Apoi repornit Visual Studio.

Comentarii (0)

Am fost confruntă cu o problemă similară, în timp ce migrarea un cod de la VS 2008 la VS 2010 Efectuarea de modificări la App.fișierul de configurare a rezolvat problema pentru mine.





Comentarii (0)

Se adaugă următoarele la această locație C:\Program Files (x86)\Microsoft Sdk\Windows\v7.0A\Bin\NETFX 4.0 Instrumente\x64 Numele fisierului: sgen.exe.config(Dacă nu găsiți acest fișier, de a crea și de a adăuga o)

 <?xml version ="1.0"?>












Fac asta a rezolvat problema

Comentarii (0)

Eu Folosesc




L's funcționează, dar doar înainte de ` tag altfel pornire tag nu't de lucru în mod corespunzător

Comentarii (0)

Am găsit o cale în jurul valorii de acest lucru după 3-4 ore de googling. Am adăugat următoarele



Dacă acest lucru nu't rezolva problema ta, atunci--> În cadrul Proiectului Referințe Dreptul să faceți Clic pe DLL unde ești obtinerea de eroare --> Selectați Properties--> Verifică Run-time Versiune--> Dacă este v2.0.50727 atunci știm problema. Problema este :- ai Versiunea 2.0 respective DLL. Soluția este:- nu puteți șterge respective DLL de Proiect referințe și, apoi, pentru a descărca cea mai recentă versiune de DLL de's` de la site-ul corespunzător și se adaugă referința cea mai recentă versiune DLL de referință, atunci se va lucra.

Comentarii (1)

Am fost confruntă cu aceeași eroare, si-a petrecut pentru totdeauna adăugarea sugerat de pornire declarații la diferite fișiere de configurare în soluția mea, încercarea de a izola cadrul nepotrivire. Nimic nu a lucrat. Am adăugat, de asemenea, informații de pornire a mea scheme XML. Asta nu't ajuta, fie. Se uită la real fișier care a fost cauza problemei (care ar spune doar că a fost "mutate sau șterse") a dezvăluit că a fost, de fapt, Licența Compiler (LC).

Ștergerea ofensatoare licențe.licx fișier pare să fi rezolvat problema.

Comentarii (0)

De asemenea, am avut această problemă cu class library, Dacă nici o problema cu class library adăugat la cererea principală. Trebuie doar să adăugați

pentru a te principală a aplicației care va fi ales de către bibliotecă de clasă.

Comentarii (1)