Пока я держу Guid и ProgID
Будьте осторожны, есть Guids, множественное число. Как минимум, у вас есть один тип интерфейса, IID и один для класса, который реализует интерфейс, CLSID. Дополнительные, если вы поддерживаете события или имеете более одного интерфейса или класса в сборке. Если вы также зарегистрируете библиотеку типов (параметр Regasm.exe/tlb), вы также получите руководство для самой сборки, которая используется для TLBID библиотеки типов.
Получите любую из этих ошибок или положите их на автоматическое создание .NET, и замена не будет работать.
Лучший способ гарантировать идентичность замены - декомпилировать библиотеки типов и сравнить их для идентификации. В командной строке Visual Studio сначала создайте библиотеку типов, если у вас ее еще нет с Tlbexp.exe. Затем запустите Oleview.exe, File + View Typelib, чтобы получить содержимое библиотеки типов, декомпилированную в IDL. Скопируйте/вставьте содержимое правой панели в текстовый файл. Повторите для замены DLL и сравните. Не беспокойтесь о различиях в комментариях.
Благодарим вас за головы, которые я пропустил, и намек на использование OleView. Я успешно развернул новую сборку с классами COM и могу подтвердить, что она работает. –