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