c# "Questo assembly è costruito da un runtime più recente rispetto al runtime attualmente caricato e non può essere caricato"





5 Answers

Poiché solo una versione del runtime può essere caricata in un processo (sebbene, come altri hanno fatto riferimento, il caricamento all'indietro - 4.0 caricamento 2.0 - sia corretto), hai alcune opzioni:

  • Aggiorna il progetto .Net 2.0
  • Avvia il progetto .Net 2.0 (se la fonte non è tua)
  • Downgrade del progetto .Net 4.0
  • Carica il progetto .Net 4.0 nel suo processo (credo che funzioni, ma richiederà un po 'di sforzo, IMO)
c# dll .net-4.0 .net-2.0

Sto ottenendo l'errore: "Questo assembly è costruito da un runtime più recente rispetto al runtime attualmente caricato e non può essere caricato."

Ho un progetto DLL 4.0 NET che viene chiamato da un progetto .NET 2.0. C'è un modo per riconciliare la differenza nel quadro?




Se hai già provato tutte le altre soluzioni logiche in questa pagina, controlla due volte. Nel mio app.config avevo un riferimento a un vecchio framework.

<startup>
  <supportedRuntime version="v2.0.50727"/>
</startup>

avrebbe dovuto essere

<startup>
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

La scheda del progetto mostrava correttamente la v4.0 ma l'app.config non era impegnata nel nostro repository con quella modifica. Per risolvere il problema, ho cambiato il framework in qualcos'altro e di nuovo in 4.0, che ha aggiornato il mio file app.config.




È interessante notare che ho continuato a ottenere questo errore. Ciò che ha risolto il problema era la creazione di una configurazione chiamata gacutil.exe.config nella stessa directory di gacutil.exe. I contenuti di configurazione (un file di testo) erano:

<?xml version ="1.0"?> <configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <requiredRuntime safemode="true" imageVersion="v4.0.30319" version="v4.0.30319"/>
    </startup> </configuration>

Sto postando questo qui per riferimento e chiedo se qualcuno sa cosa sta realmente accadendo sotto il cofano. Non sto affermando che questo è il modo "corretto" di farlo




Ho ricevuto anche questo errore, ma il mio problema era che stavo usando una versione precedente di GACUTIL.EXE .

Una volta che ho avuto il corretto GACUTIL per l'ultima versione di .NET installata, ha funzionato bene.

L'errore è fuorviante perché fa sembrare che sia la DLL che stai cercando di registrare in modo errato.




La sua versione .misura la corrispondenza della dll, quindi prova a cambiare da in app.config o web.config. Generalmente hanno un Framework più alto di quello inferiore perché quando aggiungiamo la DLL del sistema alla versione precedente dell'applicazione .net creata in modo che non funzioni, basta cambiare alla versione superiore






Related