2011-08-16 16 views
8

Voglio caricare una DLL 2.0 .NET nel mio .Net4.0 dll. Ho cercato la soluzione e ho trovato l'attributo 'useLegacyV2RuntimeActivationPolicy' che posso aggiungere alla mia app.config come in questo url: Mixed mode assembly is built against version 'v1.1.4322'accesso a .net2.0 dll in .net 4.0 dll

Ma il problema per me è che, nel mio caso, sto cercando di usare il .net2.0 dll nella mia DLL 4.0 e non in un exe 4.0. Il motivo è che 4.0 dll viene quindi utilizzato in Excel come componente aggiuntivo di automazione.

Attualmente, quando accedo la mia API .NET 4.0 (che carica la DLL 2.0 per una funzionalità) da Excel, ottengo la "DLL di modalità mista 2.0 non può essere caricata in runtime 4.0" che è comprensibile dal momento che COM ha caricato il 4.0 CLR e quindi non può caricare la DLL 2.0.

In qualche modo ho bisogno di fare la mia 4.0 DLL per caricare il runtime 2.0. Ho provato ad aggiungere un app.config alla dll 4.0 ma suppongo che solo .exe legga app.config per default per caricare il clr. Questo è quello che ho nel mio app.config nel progetto di 4.0 dll ma non serve.

<?xml version="1.0"?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
    <runtime> 
    <NetFx40_LegacySecurityPolicy enabled="true"/> 
    </runtime> 
</configuration> 

Come faccio a risolvere questo problema per consentire il mio NET 4.0 DLL di utilizzare NET 2.0 dll?

Grazie, Mani

+1

Hai provato ad aggiungere la .net 2 dll come faresti con una normale dll? – Jethro

+0

Sembra che non sia una DLL 2.0 .NET - è una DLL .NET 1.1. –

+7

Il file .config è buono, ma deve essere excel.exe.config e copiato nella directory di Office in cui si trova Excel. –

risposta

4

La risposta è già fatto da Hans Passant ma ha postato come commento. Quindi, rispondendo a questo separatamente qui.

La configurazione deve essere denominata excel.exe.config e deve essere nella stessa directory dell'ufficio di excel.exe affinché questo scenario funzioni.