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?
Î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`.
Acest post pe forum pe .NET Framework Developer Center. S-ar putea oferi anumite detalii.
(Se adaugă la app's config.)
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
Î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ă:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319"
sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>
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 :).
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.
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>
<supportedRuntime version="v2.0.50727"></supportedRuntime>
</startup>
Sau în cazul în care proiectul nu este Forma de Windows. Într-un proiect Web adăuga acest la web.fișier de configurare.
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<supportedRuntime version="v2.0.50727"></supportedRuntime>
</startup>
A fost capabil să rezolve problema prin adăugarea "pornire" element cu "useLegacyV2RuntimeActivationPolicy" set de atribute.
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
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"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
......
....
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ă
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
</startup>
î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.
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"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<requiredRuntime safemode="true" imageVersion="v4.0.30319" version="v4.0.30319"/>
</startup>
</configuration>
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"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
</startup>
</configuration>
Î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
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:
<startup useLegacyV2RuntimeActivationPolicy="true">
</startup>
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.
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.
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319"
sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>
</configuration>
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"?>
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
</startup>
</configuration>
Fac asta a rezolvat problema
Eu Folosesc
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
L's funcționează, dar doar înainte de ` tag altfel pornire tag nu't de lucru în mod corespunzător
Am găsit o cale în jurul valorii de acest lucru după 3-4 ore de googling. Am adăugat următoarele
<startup selegacyv2runtimeactivationpolicy="true">
<supportedruntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>
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.
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.
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
<startup useLegacyV2RuntimeActivationPolicy="true">
pentru a te principală a aplicației care va fi ales de către bibliotecă de clasă.