Как правильно исправить поврежденную регистрацию COM? - PullRequest
1 голос
/ 12 января 2011

У нас есть файл .ocx, содержащий 2 элемента управления ActiveX.Одно привело к другому, и ... теперь мы в дьявольском аду.Один элемент управления нормально загружается в содержащем приложении, а другой элемент управления (тот, который был изменен) не загружается полностью.Без сомнения, это потому, что мы нарушили совместимость , изменив несколько сигнатур событий и методов.( То, что должно научить нас отменять регистрацию старых .ocx перед регистрацией новых ...)

В прошлом я вспоминал о необходимости заходить в реестр и вручную удалять важные выглядящие записи из HKCR\TypeLib, но это страшно.Что является общепринятым решением для этого?

1 Ответ

1 голос
/ 19 января 2011

Если ваша COM-регистрация действительно повреждена, единственный известный мне способ ее исправить - выполнить поиск в реестре соответствующих CLSID и удалить все ссылки на нее.

Да, это немного опасно;вот почему элемент управления activex должен безопасно зарегистрироваться самостоятельно, и поэтому MS теперь рекомендует использовать MSI для установки, а не делать selfreg (regsvr32) в процессе установки.Если в системе что-то напутано, это может быть трудно исправить.

Однако, если вы выясните соответствующие CLSID (CLSID для каждого элемента управления и библиотеки типов) и удалите только те элементы, которые ссылаются на нихты должен быть в порядке;чтобы быть в безопасности, перед началом работы установите точку восстановления системы.

Удачи

...