Вот моя проблема:
Я должен сделать плагин, размещенный сторонним приложением.Это приложение является приложением MFC, и для создания моего плагина я должен реализовать COM-объект.Мой COM-объект находится в C # и должен взаимодействовать со сборкой .NET 4 (поэтому мой проект C # нацелен на .NET 4).
Когда я это проверял, он не работал ... Я получил исключение: Сборка смешанного режима построена для версии 'v2.0' среды выполнения и не может быть загружена в среде выполнения 4.0 без дополнительной информации о конфигурации ...
Теперь, так как я делаюинтеграция со сторонним приложением, добавление файла App.exe.config с набором useLegacyV2RuntimeActivationPolicy не представляется приемлемым решением (или это так?).
Я пробовалдобавить дополнительный слой C ++ между приложением MFC и моим кодом .NET.Этот уровень реализует объект COM и перенаправляет все вызовы на C #.Я разрешил свое исключение в смешанном режиме, используя метод ICLRRuntimeInfo :: BindAsLegacyV2Runtime ().Это работало нормально.Однако, если другой плагин, использующий только .NET 2.0, загружен до моего, этот метод завершится неудачно (поскольку среда выполнения .NET 2.0, запускаемая другими плагинами, управляет устаревшими политиками загрузки).
Короче говоря, я застрял,Есть ли способ динамически изменить среду выполнения, отвечающую за устаревшие политики загрузки?
Спасибо за помощь.