2016-05-23 8 views
0

Мое приложение - подключитель C# к стороннему неуправляемому приложению. У меня есть форма окна с одним из их элементов управления (AxInterop), который зависит от одной из их неуправляемых библиотек DLL. Их версия версии 2015 того же элемента управления зависит от файла библиотеки другого типа (например, abc.tlb теперь 123.tlb), но оба они поддерживают один и тот же интерфейс.Как динамически загружать правильную версию стороннего неуправляемого элемента управления в C#

Я не хочу создавать отдельные сборки.

Как я могу получить код для использования ABC.tlb для более ранних версий и использовать версию 123.tlb для версии 2015 года?

Можете ли вы загрузить файлы tlb, такие как сборки при запуске?

спасибо

+1

Это не имеет никакого смысла. Файл .tlb - это библиотека типов, которая используется во время компиляции. Поэтому вы должны перекомпилировать свое приложение с помощью ссылки на библиотеку нового типа. –

+0

Я использовал динамику перед и отражением, поэтому мне не нужно ссылаться на ту же DLL, что и этот элемент управления. Теперь разница заключается в том, что я использую элемент управления, который ссылается на dll, и я ищу способ получить его, чтобы найти новую dll для 2015 года. Так что, может быть, подумать, что мне нужно загрузить другой tlb, мне просто нужно загрузить что новая dll при запуске. Имеет ли это смысл? – Perry

ответ

0

ОК, решил использовать динамику в конце концов. Контролем AxInterop была красная селедка. Элемент управления имеет свойство, которое имеет тип, который изменился на 2015 год. Я использовал динамику, чтобы получить свойство из объекта рабочей области третьей стороны, а затем установить свойство для этого значения. Мой проект не имеет ссылок на ABC или 123.

 Смежные вопросы

  • Нет связанных вопросов^_^