Perl - Win32 :: OLE :: const错误

时间:2018-04-23 06:07:39

标签: perl sftp winscp winscp-net

我正在尝试使用Perl脚本将WinSCP用于SFTP。我几乎使用了WinSCP site逐字的代码。但我收到以下错误:

  

Win32 :: OLE :: CONST->加载:test.pl中没有或无效的类型库名称   第12行.Win32 :: OLE(0.1712):GetOleTypeLibObject()不是   C:/Perl/lib/Win32/OLE/Const.pm第49行的Win32 :: OLE :: TypeLib对象。

有谁知道造成这种情况的原因是什么?

我的代码:

use Win32::OLE;
use Win32::OLE::Const;
use Win32::OLE::Variant;
 
Win32::OLE->Initialize(Win32::OLE::COINIT_OLEINITIALIZE);
my $session = Win32::OLE->new('WinSCP.Session');
 
my $consts = Win32::OLE::Const->Load($session);
 
my $sessionOptions = Win32::OLE->new('WinSCP.SessionOptions');

1 个答案:

答案 0 :(得分:4)

确保您拥有registered WinSCP .NET assembly for COM

%WINDIR%\Microsoft.NET\Framework\<version>\RegAsm.exe WinSCPnet.dll /codebase /tlb