У меня есть .NET DLL, которая установлена в GAC, так как она используется несколькими приложениями.
Одной из них является книга Excel, которая ссылается на DLL с помощью COM-взаимодействия .NET. Файл COM tlb устанавливается в каталог приложения.
Это все работает нормально, кроме случаев, когда установлена обновленная версия DLL. На некоторых ПК COM-ссылка в книге разрывается (она отображается как «Отсутствует»). При запуске соответствующего макроса происходит сбой Excel. Это можно исправить, сняв отметку с отсутствующей ссылки в редакторе VBA и повторно добавив ссылку на библиотеку DLL, но я бы предпочел, чтобы мои пользователи не должны были делать это каждый раз, когда открывали ее.
Все соответствующие объекты и методы имеют неизменные подписи и украшены неизменными идентификаторами GUID.
Есть идеи, почему ссылка обрывается?
РЕДАКТИРОВАТЬ: После некоторых исследований глубоко в реестре, похоже, что регистрация COM происходит неправильно при установке. Однако это не показывалось как сбой установки. Тем не менее, нет ничего ближе к тому, чтобы найти основную причину.