VS2017中WinForm工具箱加载dll文件时未找到组件的问题

最近在编写程序时需要用到对数坐标画图,本来是打算使用WinForm自带的Chart控件的,然而将坐标轴改成对数坐标后,弹出窗口时会报错,如图1所示。


图1 Chart报错信息

试了半天,也没有找到解决的办法。于是便去网上查了查,但似乎也没人有这方面的问题,无奈之下,发现有人推荐使用ZedGraph来画报表图,便打算使用这个控件来替代Chart。

于是,我便用Nuget安装了ZedGraph的5.1.5版本,但是在工具箱加载dll文件时,却报出找不到组件的问题。实际上,我之前在使用别的控件时,也发生过这个问题,当时因为有其他替代品,便不了了之了,这回又碰到了。

我当即怀疑是nuget上的控件包有问题,便找到zedgraph的源代码网页,先下载了一个demo程序,神奇的是,加载里面的dll控件却是正常的。当即又从源码上下载了dll文件,重新加载,居然也顺利加载了组件。难道真是nuget上的控件包有问题?我用BeyondCompare对比了两边的dll文件,却是完全一致的。而后,我又把从源码网页上下载的dll文件放到程序路径中,又报出未找到组件的错误。这么看来,并不是nuget的问题。那么,为什么同样的dll文件,有时可以有时不可以呢?

随机我猜想可能是路径的问题,于是便将packages文件夹下的ZedGraph.5.1.5文件夹一点一点往外挪,直到移出了C#文件夹后,加载正常了。那么,问题就是出在了这个C#文件夹上了,最大的可能便是这个“#”符号导致的问题。于是我把文件夹名改为Csharp,恢复ZedGraph.5.1.5文件夹后,加载正常了,问题解决。

总结:

文件路径名中,不要夹杂特殊符号,容易导致异常问题!发生dll加载问题时,请确保程序路径中没有特殊符号。

你可能感兴趣的:(C#)