我正在使用VS2008和C#开发霍尼韦尔海豚6100的应用程序。
我想添加一个功能,可以将文件从本地设备发送到远程服务器。我找到了可以保证这一点的“Tamir.SharpSSH”库。我在控制台应用程序和普通Windows窗体应用程序上测试了代码,它可以完美地工作。但是,当我尝试在winCE设备上使用相同的代码时,出现TypeLoadException并出现错误消息:

Could not load type 'Tamir.SharpSsh.SshTransferProtocolBase' from assembly 'Tamir.SharpSSH,
Version=1.1.1.13, Culture=neutral, PublicKeyToken=null'.

the code that I'm use is like below :

SshTransferProtocolBase sshCp = new Scp(Tools.GlobalVarMeth.hostName, Tools.GlobalVarMeth.serverUserName);
sshCp.Password = Tools.GlobalVarMeth.serverUserpassword;
sshCp.Connect();

string localFile = Tools.GlobalVarMeth.applicationPath + "/" + fileName + ".csv";
string remoteFile = Tools.GlobalVarMeth.serverRemoteFilePath + "/" + fileName + ".csv";

sshCp.Put(localFile, remoteFile);

sshCp.Close();
有人对此有任何想法吗?我将非常感激!

最佳答案

可能有很多东西。可能的原因是:

  • 找不到程序集
  • 找不到您的程序集所依赖的程序集
  • 找到了程序集,但类型不在其中
  • 类型的静态构造函数引发异常

  • 最好的选择是使用Fusion日志查看器来帮助对其进行诊断。文档在这里:

    http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.110).aspx

    (FYI“Fusion”是设计程序集加载系统的团队的代号;不幸的是,代号最终以出厂产品的文件名结尾。该名称应称为“AssemblyBindingLogViewer.exe”或一些这样的东西。)

    关于c# - 是什么原因导致System.TypeLoadException?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16086178/

    10-11 12:37