Сборка WinSCP .NET с компонентом ActiveX, создающим VBA, не может создать объект

Я недавно зарегистрировал WinSCPnet.dll используя.NET Framework C:\Windows\Microsoft.NET\Framework64\v2.0.50727, И я добавил файл tlb, сгенерированный в мои ссылки на VBA. Но когда я пытаюсь создать экземпляр SessionOptions объект выдает ошибку "Компонент ActiveX не может создать объект". Не уверен, что здесь пошло не так.

Кроме того, я обнаружил, что смог подключиться с помощью VBScript. Но если я использую VBA, это не работает. Кто-нибудь может подсказать в чем проблема?

1 ответ

Если ваша установка Microsoft Excel является 32-битным приложением, вы должны зарегистрировать WinSCPnet.dll для 32-битной платформы.NET, даже в 64-битной системе.

Как показывают инструкции по регистрации сборки WinSCP .NET для COM, в 64-разрядной системе обычно требуется зарегистрировать сборку для 32-разрядной и 64-разрядной систем:

%WINDIR%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe WinSCPnet.dll /codebase /tlb:WinSCPnet32.tlb
%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe WinSCPnet.dll /codebase /tlb:WinSCPnet64.tlb

Не добавляйте .tbl вручную в Excel. Сборка появляется сама после правильной регистрации.

Другие вопросы по тегам