У меня есть сборка С#, которую я вызываю через COM из приложения Delphi (win32 native).
Это работает на всех машинах, на которых я тестировал их, кроме одного.
Проблема заключается в том, что приложение Delphi получает "Class not registered" при попытке создать COM-объект.
Теперь, когда я смотрю в реестре под HKEY_CLASSES_ROOT\DelphiToCSharp\CLSID
, указанный там GUID не совпадает с сборкой Guid в AssemblyInfo.cs. Он должен быть одинаковым - он одинаковый на всех других компьютерах, где он был установлен.
Я пробовал regasm /unregister delphitocsharp.dll
и удаляет раздел реестра. Тогда, если я сделаю regasm delphitocsharp.dll
, ключ реестра вернется, но GUID будет таким же, как и раньше (т.е. Неправильным), а Delphi все еще получает "Класс не зарегистрирован".
DelphiToCSharp.dll на рабочей машине идентичен (проверен с помощью md5) версии на нерабочем компьютере.
Все, о чем я могу думать, это то, что ранее была зарегистрирована старая версия dll, и все еще существует некоторый остаток этого файла, который заставляет regasm запутаться.
Как я могу исправить или хотя бы дополнительно диагностировать эту проблему?