Заставить FSI, версию .NET 4, загружать сборки, скомпилированные для .NET 2.0 - PullRequest
0 голосов
/ 20 апреля 2011

Я работаю в основном с .NET 4.0, используя fsi, F # интерактивный, но у меня есть несколько dll, к которым мне нужен доступ, которые скомпилированы только для версии .NET 2.0 платформы (я проверил манифест, на который они ссылаютсяmscorlib версия 2).

Я получаю исключение при загрузке типов, когда пытаюсь использовать эти типы.Я предполагаю, что это из-за некоторой несовместимости .NET 2.0 / .NET 4.0 при динамической загрузке типов и т. Д. Точное сообщение об ошибке:

System.TypeLoadException: Could not load type 'IMyInterface' from assembly 'MyDll, Version=2.3.17.15, Culture=neutral, PublicKeyToken=null'.

Тип, с которым я пытаюсь работать, этоинтерфейс, я не знаю, если это важно.Использование скомпилированного эквивалента кода работает нормально.

Верно ли предположение, что это связано с несовместимостью .NET 2.0 / .NET 4.0?Если да, то есть ли способ обойти это?

1 Ответ

0 голосов
/ 28 апреля 2011

Проблема, с которой вы сталкиваетесь, связана с управлением версиями между сборками .NET 4.0 mscorlib n и сборками .NET 2.0 FW. Поскольку весь набор .NET 4.0 имеет разные версии, я не думаю, что вы можете использовать .NET 2.0 в этом. Для тестирования у вас может быть две библиотеки классов с разными версиями (подпишите их!) И попробуйте загрузить их. Это просто не будет работать из-за их зависимостей.

Вероятно, вам следует снова собрать сборку .NET 2.0 FW с .NET 4.0, может быть суффиксом сборки, как "4.0"

...