最近,因为公司开发的需要,对开发环境进行全面的升级,在这其中也遇到了不少问题,在之后将陆续整理出来,以便以后查看。
之前开发环境:VS2008,ArcGIS9.3,ArcEngine9.3,Oracle10g,ArcSDE9.3,DevExpress9.3.4,Windows7 32位系统
新开发环境:VS2010,ArcGIS10.1,ArcEngine10.1,Oracle11gR2,ArcSDE10.1,DevExpress12.2,Windows7 64位系统(因为ArcSDE10.1只支持64位系统)
问题描述:因为开发环境改变,因此需要对老版本开发环境下的程序进行升级,下面简单进行介绍。
1、对于VS2010,在VS2010环境下打开VS2008项目文件,VS会自动提示转换,采用自动转换点击下一步进行转换即可,直到完成为止。
2、对于DevExpress,在打开时,也会弹出自动转换对话框,选择根目录然后点击Update即可对DEV引用进行替换(对于部分控件有稍许编号,单基本都可以直接使用,无需过多更改代码)。
如果无法自动弹出DEV转换对话框,也可以通过从工具栏进行调用。
3、对于ArcEngine,大部分引用均无法自动替换,我们选中无法自动替换的引用,右键属性将其特定版本属性修改为false即可。对于实在没法替换的引用需要手动删除后再进行添加(比较麻烦一些)。
另外,对于ArcEngine代码无需过多修改,只要略微调整即可。其他代码修改的大概有两方面。
(1)、ArcEngine许可初始化
要额外添加 ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);代码(ESRI.ArcGIS.Version引用)
(2)、ArcSDE连接字符串代码
IPropertySet pProSet = new PropertySetClass();
pProSet.SetProperty("Server", pUserType.Server);//服务器地址
pProSet.SetProperty("Instance", pUserType.SdeSvc + pUserType.DBName);//"sde:oracle11g:"+OracleClient配置连接名
pProSet.SetProperty("AUTHENTICATION_MODE", "DBMS");
pProSet.SetProperty("User", sDBOwner);//用户名
pProSet.SetProperty("Password", sDBPsd);//密码
pProSet.SetProperty("Version", "SDE.DEFAULT");
IWorkspaceFactory pWSF = new SdeWorkspaceFactoryClass();
IWorkspace pWS = pWSF.Open(pProSet, 0);
4、修改VS2010生成环境(不修改生成环境可能导致系统无法正常运行,可能提示版本问题以及导致VS2010无法调试等,这些问题将在后面进行整理)