Сборка 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. Сборка появляется сама после правильной регистрации.