64位系统开发ArcGIS Engine时,经常会遇到的问题和解决方案
发布于 4 年前 作者 wandergis 9362 次浏览 最后一次编辑是 3 年前 来自 软件

现在随着硬件的发展,64位系统4G内存已经成为了计算机的标配,作为程序员的我们更是更是早早就升级了64位,那么我们在用64位系统的电脑开发ArcGIS Engine程序会遇到哪些常见的错误呢?本文为大家总结如下几个常见的问题:

  1. 新建项目时找不到对应的模板,这个问题应该现在很少遇到了,大部分都是win7系统,预装了.NET 3.5,新建项目时一般可以列出ArcGIS的模板,但是这里还是要说下,由于ArcGIS10是在.NET 3.5下开发,因此在开发时候一定要选择的框架版本在3.5以上。
  2. 拖好控件运行报错QQ截图20140918105247.jpg 并且已经在程序主入口加上了 ESRI.ArcGIS.RuntimeManager.Bind(ProductCode.EngineOrDesktop);

出现这种情况的根本原因是ArcGIS Engine是32位的程序,而64位系统默认编译的目标平台是AnyCPU,因此解决该问题的方法是在项目解决方案上右击属性,在生成选项卡将目标平台切换成X86(即32位平台),并且检查下应用程序的目标框架,尽量改成不带Client Profile的框架,这样可以避免后续一些让人摸不着头脑的错误。

3. 在使用.NET4.0开发的时候,经常看到编译器下面报一堆互操作类型的错误,如图,是不是很让人恼火 互操作.jpg

解决方案是把引用中所有ESRI开头的引用选中,另外有stdole的引用也请选中,然后右击属性,将互操作类型改成False,如图:

0.jpg 再次生成解决方案,问题解决。

  1. 补充一点小技巧,在AE开发版本迁移的时候,比如10.0到10.1、10.1到10.2或者类似的降级的时候需要重新删除带有感叹号的引用,然后再重新添加对应版本的引用,这里我们可以选中ESRI开头的所有引用,然后右击属性将特定版本改成False,这样程序就会自动引用系统安装对应版本的引用程序集,是不是很省事呢?哈哈!
3 回复

顶楼主,项目中遇到过,目标平台切换成X86~

@shinezhang 嘿嘿,对大家有用就好

楼主,我遇到下列问题怎么解决啊

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /platform:x86 /errorreport:prompt /warn:4 /define:DEBUG;TRACE /errorendlocation /preferreduilang:zh-CN /highentropyva- /reference:D:\DevExpress\Bin\Framework\DevExpress.Data.v14.1.dll /reference:D:\DevExpress\Bin\Framework\DevExpress.Printing.v14.1.Core.dll /reference:D:\DevExpress\Bin\Framework\DevExpress.Sparkline.v14.1.Core.dll /reference:D:\DevExpress\Bin\Framework\DevExpress.Utils.v14.1.dll /reference:D:\DevExpress\Bin\Framework\DevExpress.XtraBars.v14.1.dll /reference:D:\DevExpress\Bin\Framework\DevExpress.XtraEditors.v14.1.dll /reference:D:\DevExpress\Bin\Framework\DevExpress.XtraNavBar.v14.1.dll /link:D:\AE\DeveloperKit10.2\DotNet\ESRI.ArcGIS.3DAnalyst.dll /link:D:\AE\DeveloperKit10.2\DotNet\ESRI.ArcGIS.ArcMapUI.dll /reference:D:\AE\DeveloperKit10.2\DotNet\ESRI.ArcGIS.AxControls.dll /reference:D:\AE\DeveloperKit10.2\DotNet\ESRI.ArcGIS.Carto.dll /link:D:\AE\DeveloperKit10.2\DotNet\ESRI.ArcGIS.Controls.dll /reference:D:\AE\DeveloperKit10.2\DotNet\ESRI.ArcGIS.DataSourcesFile.dll /link:D:\AE\DeveloperKit10.2\DotNet\ESRI.ArcGIS.Display.dll /link:D:\AE\DeveloperKit10.2\DotNet\ESRI.ArcGIS.Geodatabase.dll /link:D:\AE\DeveloperKit10.2\DotNet\ESRI.ArcGIS.Geometry.dll /link:D:\AE\DeveloperKit10.2\DotNet\ESRI.ArcGIS.GlobeCore.dll /link:D:\AE\DeveloperKit10.2\DotNet\ESRI.ArcGIS.Output.dll /link:D:\AE\DeveloperKit10.2\DotNet\ESRI.ArcGIS.System.dll /link:D:\AE\DeveloperKit10.2\DotNet\ESRI.ArcGIS.SystemUI.dll /link:D:\AE\DeveloperKit10.2\DotNet\ESRI.ArcGIS.Version.dll /reference:“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Microsoft.CSharp.dll” /reference:“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\mscorlib.dll” /link:“D:\VS2013\Visual Studio Tools for Office\PIA\Common\stdole.dll” /reference:“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Core.dll” /reference:“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Data.DataSetExtensions.dll” /reference:“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Data.dll” /reference:“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Deployment.dll” /reference:“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.dll” /reference:“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Drawing.dll” /reference:“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Windows.Forms.dll” /reference:“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Xml.dll” /reference:“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Xml.Linq.dll” /debug+ /debug:full /filealign:512 /optimize- /out:“obj\Debug\第五个界面搭建程序.exe” /resource:“obj\Debug\第五个界面搭建程序.mysystem.resources” /resource:“obj\Debug\第五个界面搭建程序.Properties.Resources.resources” /resource:“obj\Debug\第五个界面搭建程序.exe.licenses” /target:winexe /utf8output Form1.cs Form1.Designer.cs Program.cs Properties\AssemblyInfo.cs Properties\Resources.Designer.cs Properties\Settings.Designer.cs “C:\Users\asus\AppData\Local\Temp.NETFramework,Version=v4.0.AssemblyAttributes.cs

生成失败。

赞助本站 点击广告
回到顶部