SuperMap iObjects .NET加载dll动态库失败,控件不能用问题解析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SuperMap iObjects .NET加载dll动态库失败,控件不能用问题解析相关的知识,希望对你有一定的参考价值。
参考技术A 初次部署使用SuperMap iObjects .NET的开发人员,可能遇到以下问题:1.环境部署不成功
2.部署成功了,VS工具箱里面没有SuperMap相关控件
3.工具箱里面的SuperMap相关控件拖到界面上报错
4.运行程序,报错未能加载文件或程序集
下面我们将对上述问题来使用“套路”一一解决。
大前提: 很多用户喜欢在工具箱里面拖控件使用,可视化的管理控件的属性,但遇到了上面所述
的问题不知道如何解决,这里我们先说一个“大前提”,要想使用工具箱里面的控件,无论你的计
算机操作系统是32位的还是64位的,只能部署SuperMap iObjects .NET 32位的开发环境(VS的
限制,超图也很无奈啊),这样才能注册工具箱。当然,不需要通过拖控件,习惯new控件来使用
的用户,你的计算机操作系统是32位的就安装32位的SuperMap iObjects .NET,你的计算机操作
系统是64位的,那么部署SuperMap iObjects .NET 32位还是64位的运行环境就任君选择了。
一.环境部署不成功
使用Install_x86.bat/Install_x64.bat 文件来完全部署的用户,如果部署过程中出现问题,解决的套路很简单。
1.关闭所有杀毒软件(最好连防火墙都关了)
2.关闭VS(可能会涉及到安装Microsoft .NET Framework 4.0)
3.以管理员身份运行Install_x86.bat/Install_x64.bat 文件
自定义部署不成功的用户,上面的套路照样可用,但通常出现问题是在注册工具箱的时候,我们在“大前提”里面说过,要使用工具箱来拖控件,就只能部署SuperMap iObjects .NET 32位的运行环境!所以注册工具箱的环境,要是32位的。当然,不需要注册工具箱的用户,这一点就可以不用关注。
二.部署成功了,VS工具箱里面没有控件
1.工具箱右键---->添加选项卡
3.在新打开的页面中选择.NET Framework组件,点击浏览,找到SuperMap iObjects .NET 目录下32位bin包(x86)的SuperMap.UI.Controls.dll,SuperMap.Mapping.dll,SuperMap.Layout.dll,SuperMap.Realspace.dll,SuperMap.Data.dll,添加后点击确定。
4.此时看看我们的工具箱,是不是就有了相关控件了
三.工具箱里面的控件拖到界面上报错
这个问题的解决办法是把SuperMap iObjects .NET 目录下32位的Bin包路径加在环境变量中
具体操作如下:
1.打开计算机
2.点击系统属性
3.点击高级系统设置
4.点击环境变量
5.双击系统变量中的path变量
6.然后找到SuperMap iObjects .NET组件目录下的32位bin包路径,加在系统环境变量path中(没有的话就新建一个path)
瞬间搞定问题
四.运行程序,报错未能加载文件或程序集
上面这种错误,解决办法如下:
1.把你引用的dll文件所在bin包目录添加到环境变量中,具体方法上面已经说过了。
2.确认你的许可是否有你所用到的功能模块,一般试用许可会包含所有的功能模块,而正式许可不一定包含全部的功能模块,具体检查方法如下:
(1)打开许可中心
(2)在许可状态中查看有哪些模块以及许可是否已经过期
3.如果使用的场景的功能,计算机显卡不支持的话,也会抛出这个异常。一个简单的检验办法就是打开桌面软件(SuperMap iDesktop),看三维功能是否能正常使用。
还有一种运行程序比较常见的错误是:未能加载文件或程序集 ‘SuperMap. Version =***’ 或者它的某一个依赖项。试图加载格式不正确的程序’
解决办法如下:
第一,保证编译目标平台位数和引用的dll文件动态库位数保持一致
具体操作:
1.选中工程,右键选择属性
2.选择一致的目标平台
第二,环境变量中只有一个组件bin路径,且与引用动态库路径保持一致,具体的查看和修改方法上面已经说过,这里不再赘述。
第三,把工程的工作目录和引用路径设置为引用动态库路径,这一点可以用来检测出现的问题是否跟环境变量有关。设置好了之后,程序能够运行起来,说明问题就出在环境变量上,还是不能运行起来的话,就不用纠结环境变量了,问题不在这上面,得找找其它原因。
第四,选择合适的.NET Framework框架,SuperMap iObjects .NET 6R版本,得选择.NET Framework 3.5及以下,SuperMap iObjects .NET 7C,8C版本,得选择.NET Framework 4.0及以上。
以上就是解决此类问题的“套路”,有了这些“套路”,此类问题就可以对症下药,迎刃而解了。
以上是关于SuperMap iObjects .NET加载dll动态库失败,控件不能用问题解析的主要内容,如果未能解决你的问题,请参考以下文章
SuperMap iObject入门开发系列之四管线长度统计
SuperMap iObject入门开发系列之一组件式GIS开发平台介绍
SuperMap iObject入门开发系列之三管线系统标注
SuperMap iObject入门开发系列之五管线属性查询
SuperMap Deskpro .NET 6R(2012)怎么安装??我安装好了,打开提示supermap许可不可用。检查配置是不是正确