Ich möchte eine .NET 2.0-DLL in meiner .Net4.0 dll laden. Ich habe nach der Lösung gesucht und das Attribut 'useLegacyV2RuntimeActivationPolicy' gefunden, das ich wie in dieser URL zu meiner app.config hinzufügen kann: Die Assemblierung im gemischten Modus basiert auf der Version 'v1.1.4322'
Aber das Problem für mich ist, dass ich in meinem Fall versuche, die .net2.0 DLL in meiner 4.0 DLL und nicht in einer 4.0 exe zu verwenden. Der Grund ist, dass diese 4.0-DLL dann in Excel als Automatisierungs-Add-In verwendet wird.
Derzeit, wenn ich meine .NET 4.0 API (die lädt die 2.0 dll für ein Feature) von Excel, bekomme ich die "Mixed-Modus 2.0 dll kann nicht in 4.0 Laufzeit geladen werden", die verständlich ist, seit COM die 4.0 geladen hat CLR und kann daher die 2.0 dll nicht laden.
Irgendwie muss ich meine 4.0 DLL machen, um die 2.0 Laufzeit zu laden. Ich habe versucht, eine app.config der 4.0 dll hinzuzufügen, aber ich denke, nur .exe liest die app.config standardmäßig, um die clr zu laden. Das habe ich in meiner app.config im Projekt 4.0 dll aber keine Verwendung.
%Vor%Wie löse ich dieses Problem, um meiner .NET 4.0 DLL die Verwendung von .NET 2.0 dll zu ermöglichen?
Danke, Mani
Die Antwort wurde bereits von Hans Passant gemacht, aber er hat als Kommentar gepostet. Daher hier separat antworten.
Die Konfiguration muss "excel.exe.config" lauten und sollte sich im selben Office-Verzeichnis wie "excel.exe" befinden, damit dieses Szenario funktioniert.
Tags und Links .net c# clr com com-interop