Я только что обновил DLL, которая вызывается из VBA в Powerpoint. Вся разработка прошла нормально, но когда я попытался развернуть на другой машине пользователя, я столкнулся с проблемой, которую я не знаю, как отлаживать.
Что происходит, так это то, что когда объект .Net создается в VBA, возвращаемая ссылка относится к неправильному объекту, поэтому следующая строка завершается с ошибкой, а метод не найден.
Dim myObj As Foo.Bar
Public Sub RefreshData()
//'instantiate object
Set myObj = New Foo.Bar
//'call a method
myObj.HelloWorld
Последняя строка завершается с ошибкой Ошибка времени выполнения «438». Объект не поддерживает это свойство или метод, что вызвано тем, что myObj каким-то образом имеет тип «Wrong.Type» вместо «Foo. Бар".
«Wrong.Type» также находится в сборке, поэтому я предполагаю, что что-то не так с библиотекой типов, но я попытался восстановить ее (используя regasm /codebase /tlb MyLib.dll), и это не помогло.
Я не знаю, как диагностировать это дальше. Надеюсь, кто-то там может перечислить некоторые шаги о том, как диагностировать такого рода проблемы?