Ссылка в Excel на .NET DLL разрывается с новой версией - PullRequest
1 голос
/ 17 февраля 2009

У меня есть .NET DLL, которая установлена ​​в GAC, так как она используется несколькими приложениями.

Одной из них является книга Excel, которая ссылается на DLL с помощью COM-взаимодействия .NET. Файл COM tlb устанавливается в каталог приложения.

Это все работает нормально, кроме случаев, когда установлена ​​обновленная версия DLL. На некоторых ПК COM-ссылка в книге разрывается (она отображается как «Отсутствует»). При запуске соответствующего макроса происходит сбой Excel. Это можно исправить, сняв отметку с отсутствующей ссылки в редакторе VBA и повторно добавив ссылку на библиотеку DLL, но я бы предпочел, чтобы мои пользователи не должны были делать это каждый раз, когда открывали ее.

Все соответствующие объекты и методы имеют неизменные подписи и украшены неизменными идентификаторами GUID.

Есть идеи, почему ссылка обрывается?

РЕДАКТИРОВАТЬ: После некоторых исследований глубоко в реестре, похоже, что регистрация COM происходит неправильно при установке. Однако это не показывалось как сбой установки. Тем не менее, нет ничего ближе к тому, чтобы найти основную причину.

1 Ответ

0 голосов
/ 17 февраля 2009

У нас тоже были проблемы; поэтому наши программы исправлений всегда запускают gacutil.exe / cdl для очистки кэша загрузки. Решение не имело смысла для нас, так как мы не загружали наши сборки через браузер, но оно помогло. Чтобы узнать, поможет ли это вам, попробуйте запустить gacutil.exe / l, чтобы убедиться, что ваша сборка находится в кэше загрузок.

Кроме того, обратите внимание, что по какой-то причине gacutil не перераспределяется с платформой, поэтому вам сначала необходимо скопировать его в соответствующую систему.

...