Perl 使用Par::Packer和包含Net::SSH2的脚本装箱的.exe不起作用

Perl 使用Par::Packer和包含Net::SSH2的脚本装箱的.exe不起作用,perl,strawberry-perl,net-ssh,pp-perl-par-packager,perlnetssh,Perl,Strawberry Perl,Net Ssh,Pp Perl Par Packager,Perlnetssh,我在Perl脚本中使用Net::SSH2模块,并试图使用Par::Packer生成可执行文件(.exe for windows)。该脚本需要使用公钥从windows设备ssh到linux设备,并且不想输入密码 我在运行.exe时遇到以下错误 无法加载 'C:\Users…\AppData\Local\Temp\par-73656172756d7567616d\cache-a6d57d5a234829aae84d08c4a78a09ad307ea8d3\a9057da2.xs.dll' 对于模块N

我在Perl脚本中使用Net::SSH2模块,并试图使用Par::Packer生成可执行文件(.exe for windows)。该脚本需要使用公钥从windows设备ssh到linux设备,并且不想输入密码

我在运行.exe时遇到以下错误

无法加载 'C:\Users…\AppData\Local\Temp\par-73656172756d7567616d\cache-a6d57d5a234829aae84d08c4a78a09ad307ea8d3\a9057da2.xs.dll' 对于模块Net::SSH2:load_文件:无法找到指定的模块 可在C:/草莓/perl/lib/DynaLoader.pm第193行找到。在 C:/草莓/perl/vendor/lib/PAR/Heavy.pm第123行

尝试使用以下方法解决问题,但均无效

  • 尝试从可移植版本的草莓Perl打包
  • 使用Par::Packer打包时尝试链接a9057da2.xs.dll
  • 使用Net:SSH2将perl scrip打包到.exe是否有任何解决方法或修复方法。
    或者,是否有使用公钥(不传递密码)从windows到Linux的Net::SSH2 for ssh的替代方案?

    可能您没有将
    libssh2
    openssl
    DLL打包到可执行文件中

    Par::Packer
    不会自动检测DLL依赖关系,您需要明确告诉它您的程序需要哪些DLL(发现您的程序需要哪些DLL的一个简单方法是使用它,这是一个允许您监视进程活动的实用工具)

    另一种选择是使用我的模块来打包应用程序,它会自动查找DLL依赖项