Я использую стороннюю библиотеку, которая предоставляет интерфейс COM (всегда один и тот же). Однако по какой-то причине они решили менять CLSID с каждой новой версией. Я могу найти CLSID в реестре или, возможно, даже из ProgID, но мне нужно использовать его из C #.
[ComImport, Guid("THAT-CHANGES")]
interface IFoo {
void Bar();
}
В принципе, я могу объявить идентичные IFooV1, IFooV2 и т. Д., Которые имеют разные GUID, и выполнить между ними ручную диспетчеризацию. Тем не менее, я хотел бы знать, возможно ли установить этот GUID во время выполнения после выяснения, какая это версия, чтобы избежать дублирования кода.