未能加载文件或程序集“ESRI.ArcGIS.Version, Version=10.4.0.0
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未能加载文件或程序集“ESRI.ArcGIS.Version, Version=10.4.0.0相关的知识,希望对你有一定的参考价值。
未能加载文件或程序集“ESRI.ArcGIS.Version, Version=10.4.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86”或它的某一个依赖项。系统找不到指定的文件。
没有添加引用,在工程中添加引用即可.也有可能是文件丢失或损坏,可能需要重新安装ARCGIS.
方法/步骤
下载解压软件可以看到
点击运行ESRI.EXE文件,看到界面,分别安装中文语言增补包和许可管理器,不分先后安装,最好安装在默认的盘里面
安装完毕后,点击KeyGen.exe 出现这个界面,version后面选址10.0其它默认既可
点击文件小面的all,可以看到出现的文件
新建一个名字为service的txt文档service.tx将上一步生成的内容复制到新建文档里面,将this_host改为自己的计算机名字(计算机名字查看方法,鼠标选中“计算机”右键属性既可看到)
重启计算机,当开机后将上一步新建的service.txt并替换了this_host的文件复制粘贴到C:\Program Files\ArcGIS\License10.0\bin,将原有的文件替换掉
64位系统机器,使用这个:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ESRI\License10.0]
"DESKTOP_CONFIG"="TRUE"
"TIMEOUTWARNING"="TRUE"
"SEAT_PREFERENCE"="Float"
"SingleUse_Installed"="Professional"
"SOFTWARE_CLASS"="Professional"
"LICENSE_SERVER"="@localhost"
"FlexNetService"="True"
<上述内容复制到记事本,然后修改文件名为 regArcGIS.reg 双击>
32位系统机器,使用这个:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ESRI\License10.0]
"DESKTOP_CONFIG"="TRUE"
"TIMEOUTWARNING"="TRUE"
"SEAT_PREFERENCE"="Float"
"SingleUse_Installed"="Professional"
"SOFTWARE_CLASS"="Professional"
"LICENSE_SERVER"="@localhost"
"FlexNetService"="True"
上述内容复制到记事本,然后修改文件名为 regArcGIS.reg >
一定要将"LICENSE_SERVER"="@localhost"中的@localhost改成自己计算机的名字,这一步非常重要!!!!!!!!
一定要双击运行
然后打开License Server Administrator,重新读取许可
打开ArcGIS Administrator ,点击Desktop,选择ArcInfo(浮动使用),输入许可管理器计算机名,改成自己的计算机的名称
查看可用性,如下图,即为破解成功
END
注意事项
一定要在断网的情况下安装! 参考技术A 在Arcgis所在的盘中,搜索这个内容,找到所在文件夹,然后在浏览中打开
未能加载的文件或程序集.怎么解决
1,在64位操作系统上使用任何版本的MSBuild编译引用了仅32位组件的.Net 3.5的项目;2,使用64位MSBuild编译引用了仅32位组件的项目;
3,使用32位MSBuild编译引用了仅64位组件的项目。
要解决这个问题,可以在解决方案管理器中,将所有的库的目标平台全部设置为 AnyCPU就可以了。
如果需要最终执行平台是X86只需将最终的执行文件目标平台设置为x86:
这样即可正常编译。
程序最终运行的平台,是根据可执行文件的设置来的,因此库中设置为AnyCPU不会影响到最终程序的运行,运行依然是在x86之下。
但是如果引用的DLL有仅32位的,那这种方法就不行了,解决办法http://support.microsoft.com/kb/2028833,详见MSBuild 4.0 or Visual Studio 2010 may fail to compile a 32-bit application targeted for .Net Framework 3.5, 3.0 or 2.0 on x64 machine。
详细解决步骤如下:
1、关闭所有Visual Studio;
2、以管理员的身份打开VS2010的命令提示窗口;
3、更改目录至"<system_drive>:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v<x.xx>\\bin\\”下面;
4、输入该命令corflags /32bit+ ResGen.exe /force,执行;
5、使用记事本打开<project_name>.csproj文件;
6、在PropertyGroup下添加<ResGenToolArchitecture>Managed32Bit</ResGenToolArchitecture>,保存,关闭退出。
现在在VS2010中重新打开原先的项目,编译通过,可以正确运行了!
步骤做完后就能运行的原因是,此时ResGen就是以32位模式运行了,而不是64位,因此便可以加载标记为仅32位的程序集了。代价是——它就再也无法编译标记为仅64位模式的程序集了。
对于该问题,还有另一个解决办法,打开项目属性页面,选择应用程序选项卡,设置目标框架为.NET Framework 4 。(由于框架限制,这个没测试) 参考技术A 未能加载文件或程序集“xxx”或它的某一个依赖项。试图加载格式不正确的程序。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.BadImageFormatException: 未能加载文件或程序集“xxx”或它的某一个依赖项。试图加载格式不正确的程序。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
解决方法:
将应用程序生成为Any CPU就可以了
反之,如果系统是64位的Win7,就应该将新项目的生成目标平台改为x86
综上:
64位的Win7 解决方案的生成目标平台设置为x86
32位操作系统 解决方案的生成目标平台设置为AnyCPU 参考技术B 解决了,就是引用下你未加载的DLL就可以了,我的那个webcontrol.dll,这个不是系统自带的所以要从网站上下一个,然后引用上就可以了
以上是关于未能加载文件或程序集“ESRI.ArcGIS.Version, Version=10.4.0.0的主要内容,如果未能解决你的问题,请参考以下文章