VS2017中WinForm工具箱加载dll文件时未找到组件的问题
2017-10-11 10:37
197 查看
最近在编写程序时需要用到对数坐标画图,本来是打算使用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加载问题时,请确保程序路径中没有特殊符号。
图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加载问题时,请确保程序路径中没有特殊符号。
相关文章推荐
- VS2017中WinForm工具箱加载dll文件时未找到组件的问题
- “RegSvr32 已加载mshtml.dll,但没有找到DllRegisterServer输入点。无法注册这个文件。”解决办法全集
- 小问题: windows组件调用失败,无法加载安装安装程序:Wbemupgd.dll
- 已加载 但没有找到DllRegisterServer输入点,无法注册这个组件
- Winform下创建组件失败,未能加载文件或程序集,提示filenotfound
- 【Vegas原创】未能找到引用的组件"***.dll",未能加载类型库。library not registered解决方案~
- 解决VC中动态加载DLL时,必须将DLL文件放在EXE文件路经和系统目录下的问题
- 未能加载文件 %CommonDir%\dte90a.olb。未能找到该文件,因此解决此问题的尝试失败
- explorer.exe无法找到组件 ietutil.dll文件缺失
- PHP intl扩展安装/ext/php_intl.dll文件无法动态加载的问题
- [转]小问题: windows组件调用失败,无法加载安装安装程序:Wbemupgd.dll
- 【Vegas原创】未能找到引用的组件"***.dll",未能加载类型库。library not registered解决方案~
- vs2013提示未能找到aspose.cells.dll文件的问题
- Microsoft Visual Studio--- 未能加载文件 %CommonDir%\dte90a.olb。未能找到该文件,因此解决此问题的尝试,请重新安装此程序。
- 未能加载文件或程序集“System.EnterpriseServices.Wrapper.dll”在windows7 64位中的问题解决
- C#.winform使用sqlite发布时提示无法找到SQLite.Interop.dll的问题
- 已加载dcrf32.dll,但没有找到DllRegisterServer输入点。无法注册这个文件
- 运行 devenv /resetskippkgs 重新加载组件,解决无法编辑.xsd文件的问题
- Android引用百度定位API第三方组件后导致其它.so文件无法正常加载的问题
- 关于java加载dll文件一直报Unable to load library的问题