阅读:3356回复:4
[原创]在VS2005使用ArcEngine
<P>在论坛上看到有人说ArcEngine在VS2005使用有问题,刚好这两天装了vs2005(终于要用回喜欢的C#啦,激动)。下一个项目我还想用vs2005+C#做呢,所以马上决定试试:<br>1。首先我发现开始菜单中AE中的.net help不见了,难道是AE的帮助挂不上VS2005。没有关系,直接去ESRI的官方网站上的Online Help。在online help中随便找了个C#的例子:MDI Application<br>2。下载下来后解压,用VS2005打开,使用VS2005提供的升级向导,将项目文件从7。1升级到8。0版本。<br>3。到目前为止一切正常。按F5,编译报错:<br>Error1The type 'ESRI.ArcGIS.MapControl.IMapControlEvents2_OnMapReplacedEventHandler' exists in both 'c:\Program Files\ArcGIS\DotNet\ESRI.ArcGIS.MapControl.dll' and 'c:\Program Files\ArcGIS\DotNet\ESRI.ArcGIS.AxMapControl.dll'C:\Documents and Settings\Administrator\桌面\CSharp\ChildForm.cs8176MDIApplication<br>4。从出错信息中我们可以发现是name space冲突。解决方法:为冲突的dll取别名(alias),在Solution Explorer中的reference下右键点ESRI.ArcGIS.MapControl这个Assembly,在属性(Properties)窗口中改Aliases,例如:将global改为ynugis。<br><br>5。在用到ESRI.ArcGIS.MapControl这个Assembly的CS文件的第一行添加:<br>extern alias ynugis;<br>using ynugis.ESRI.ArcGIS.MapControl;<br>在这个例子中所用CS文件都需要需要加上上面两行。<br><br>6。再次按下F5,OK了。<br>后来又想看看vs2003中为什么不用指定别名呢,找了个VS2003试试,原来vs2003也会提示冲突,只是2003自己会使用其中一个dll(好像是ESRI.ArcGIS.AxMapControl.dll,忘记了,呵呵),所以可以编译。</P>
<P>如果还有什么问题的话,欢迎到我的blog上讨论:<a href="http://my.opera.com/VonPower/blog/" target="_blank" >http://my.opera.com/VonPower/blog/</A></P> [此贴子已经被作者于2005-12-27 0:11:03编辑过]
|
|
|
1楼#
发布于:2005-12-28 14:36
这个问题好像是存在的,不过我没有用过VS2005,这样的问题也没有碰到过。今天见楼主这么一解释,以后心里就有谱了,呵呵!
|
|
2楼#
发布于:2005-12-30 19:32
鉴定楼主是好淫<img src="images/post/smile/dvbbs/em04.gif" />
|
|
|
3楼#
发布于:2006-01-05 23:55
谢谢gis加精~
|
|
|
4楼#
发布于:2006-05-09 17:30
<P>的确ae9.1对vs.net2005的支持不是那么好,addins里的工具都用不上,另外EDN上发布的开发框架也用不上,大家期待9。2吧:0</P>
|
|
|