Как отменить регистрацию COM-библиотек, изначально добавленных с помощью RegSvr32, если аргумент /u не работает?
-
09-06-2019 - |
Вопрос
Верно, изначально было написано:
c:\regsvr32 Amazing.dll
затем (случайно - я мог бы добавить) я должен был запустить его снова, и (действительно) снова, когда были выпущены новые версии «Amazing.dll».Да, я знаю сейчас Я должен был бежать:
c:\regsvr32 /u Amazing.dll
заранее - но эй!Я забыл.
Чтобы перейти к делу, при добавлении ссылки COM в VS я вижу 3 экземпляра «Amazing», все указывающие на одно и то же место (c:\Amazing.dll), работающие regsvr32 /u
удаляет одну из ссылок, второй раз - ничего не делает...
Как мне избавиться от этих ссылок?Я смотрю на сценарий regedit?- Если да, то точно произойдет, если я удалю один из ключей???
Ваше здоровье
Решение
GUID вашего объекта не должен меняться.Другими словами, после регистрации COM-объекта повторная регистрация не должна приводить к добавлению в реестр чего-либо дополнительного.
Если только вы не добавили в проект дополнительные COM-интерфейсы или объекты.
В любом случае, если это разовая сделка (а так оно и есть), откройте regedit и удалите ненужные ключи вручную.
Другие советы
Есть инструмент от MS, который все еще существует со времен Win95, который сканирует реестр и делает такие вещи, как поиск ключей COM, которые больше не указывают на действительный файл и т. д., называется RegClean (я нашел его здесь: http://downloads.zdnet.com/abstract.aspx?assetid=881470&node=2094), который, как я видел, до сих пор используется в некоторых местах, особенно при работе с устаревшими компонентами COM в VB, которые генерируют новые GUID COM после каждой сборки.
Итак, если вы это получили, отмените регистрацию, удалите или переместите файл, запустите приложение, и оно удалит «осиротевшие» записи.
Если вы решите удалить ключи с помощью RegEdit, вам может потребоваться удалить идентификаторы классов, а также записи guid.
Раньше у меня были ужасные проблемы с COM.К сожалению, мне пришлось выбирать свой путь через реестр, удаляя каждую ссылку.