小编典典

是什么原因导致System.TypeLoadException?

c#

我正在使用VS2008和C#开发霍尼韦尔海豚6100的应用程序。

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

无法从程序集“ Tamir.SharpSSH”中加载类型“ Tamir.SharpSsh.SshTransferProtocolBase”,   
版本= 1.1.1.13,文化=中性,PublicKeyToken =空'。

我使用的代码如下:

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();

有人对此有任何想法吗?我真的会很感激!


阅读 897

收藏
2020-05-19

共1个答案

小编典典

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

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

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

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

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

2020-05-19