Имам проект, създаден с .NET 4.0. Имам много код, който би било болезнено да конвертирам обратно към 2.0.
Опитвам се да импортирам Dll, създаден с .NET 2.0. Всичко работи, докато не се опитам да изпълня код от този DLL. Казва, че не може да зареди посочения модул или една от неговите зависимости
Използвах dumpbin.exe, за да проверя какви зависимости може да има
File Type: DLL
Section contains the following imports:
mscoree.dll
402000 Import Address Table
4057F0 Import Name Table
0 time date stamp
0 Index of first forwarder reference
0 _CorDllMain
Така че моето предположение е, че dll се опитва да зареди, но не може да намери mscoree.dll от версия 2.0 и по този начин предизвиква изключение.
Опитах се да заредя моя целеви модул ръчно с
Assembly asm = Assembly.LoadFrom(dllPath);
Дебъгерът на Visual Studio вече показва модула като зареден, но все още няма достъп до него. Търсенето в Windows отчита десетки "mscoree.dll", разпръснати навсякъде в директорията c:\windows, така че съм малко скептичен относно ръчното зареждане.