未能加载文件或程序集“Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=……”

emmmm~

这是一个让人烦躁有悲伤的问题~

背景

我也不知道什么原因,用着用着,正好好的,就突然报了这种问题~

未能加载文件或程序集“Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=1cee9f8bde3db106”

然后我就开始了漫长的寻找答案之旅

 

解决方案

真的太难了,我真的太难了~

根本没有解决次类似的问题的答案,各种解决方法也基本大同小异,对我而言解决不了~

倒是有一个看着很靠谱的,但由于这个问题的可能性 格外广泛,我不是这个原因,SO这个答案没帮上我什么忙,

倒是让我体会了什么叫“血淋淋的教训”。

先把这个答案贴上:https://blog.csdn.net/u012284907/article/details/100885695说不定有需要的小可爱~

然后再把我的教训给大家说一下,免得走我的老路。估计也没人和我一般

为了解决上述问题,说是要换一下数据库版本(由8.0.7换为版本低一些的,即8以下的版本),然后我就无脑换了,

但是我在原版本数据库创建的库和表没有备份卸载了服务,卸载了库!!!!真是愚蠢至极!!!

竟无语凝噎!!!!

所以这里提醒大家一下,一定一定不要不备份就对数据库起一些非分之想!!!

然后我又绝望又郁闷的继续解决我的问题。

库也没了,问题也没解决,你难以想象我当时的绝望。

然后我就静下心来仔细去追踪了我的错误,没办法,网上没解决方案,只能靠自己了

 我不再局限于追踪那一句话,我打开了“FusionLog”这个地方:

 这简直是雪中送炭!

我知道Mysql.Data.dll依赖Renci.SshNet.dll,他又提示错误的起源是DisInternetThings.Api下面的bin文件夹,然后我去看了看bin文件夹,果然,这下面没有Renci.SshNet.dll文件~~~然后我复制过去之后,大功告成,问题解决。

 但是这只是暂时解决问题了而已,你只是将dll复制到了bin文件夹,如果一删,这个问题还是会复现,所以你需要使用NuGet包再下一遍Renci.SshNet.dll,然后删掉bin目录,重新编译。就可以解决这个问题。

我这个解决办法也是众多答案中的其中之一,最根本的解决办法你还是需要找清问题所在。所以你要记得加上try{}catch Exception(ex){throw ex;},查看ex中的“FusionLog”找明白问题所在。

资深小白,说的不对的地方请多多指教。

定会虚心学习。

原文地址:https://www.cnblogs.com/pukua/p/11535944.html