ArcEngine10.x开发的许可问题
1. ArcEngine9.x迁至ArcEngine10.x
相信很多同学都知道,在ArcEngine9.x下正常编译的代码到ArcEngine10.x会报错:ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS components.
解决方法是添加Version引用,在InitializeComponent之前绑定桌面产品:
Using ESRI.ArcGIS;
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
这称之为Runtime绑定,即任何ArcObjects代码(包括许可初始化代码)被执行之前,指定相称的ArcGIS产品——ArcGIS Desktop或者ArcGIS Engine应用程序。绑定的ProductCode有ArcReader、Engine、Desktop、EngineOrDesktop、Server五种类型,一般建议是EngineOrDesktop。
2. ArcGIS for Desktop产品级别
我们必须了解Desktop产品级别,以便确定调用功能所涉及的许可权限。在ArcGIS9.x中分为ArcInfo/ArcEditor /ArcView/ ArcReader等新产品,而ArcGIS10.x则换了一个方法,分为三大级别的新产品。
ArcGIS for Desktop 基础版:提供了综合性的数据使用、制图、分析,以及简单的数据编辑和空间处理工具。
ArcGIS for Desktop 标准版:在 ArcGIS for Desktop 基础版的功能基础上,增加了对 Shapefile 和 Geodatabase 的高级编辑和管理功能。
ArcGIS for Desktop 高级版:是一个旗舰式的 GIS 桌面产品,在 ArcGIS for Desktop标准版的基础上,扩展了复杂的 GIS 分析功能和丰富的空间处理工具。

另外,ArcGIS 还提供了两个免费的桌面端产品。ArcReader,免费的地图数据(PMF)浏览、查询以及打印出版工具;ArcGIS Explorer Desktop:相比 ArcReader 更强大,支持浏览本地数据和 ArcGIS for Server 提供的服务,支持数据的查询和分析任务,具有开放性和互操作能力。
虽然大家都是用的盗版,拥有最高级别的新产品,但不小心则会在开发过程中遇到权限问题。
3. 初始化许可的两种方法
直接式:编写AoInitialize代码,一般来说,可以使用ArcGIS许可初始化向导。对于开发者来说,可以使用Visual Studio集成开发环境下的ESRI工具,通过Add ArcGIS License Checking命令可以调用ArcGIS许可初始化向导。
间接式:在Windows窗体上放置一个LicenseControl控件。
示例:(ArcEngine10.1环境下)
private static LicenseInitializer m_AOLicenseInitializer = new ArcEngineTest.LicenseInitializer();
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
//绑定Runtime
if (!RuntimeManager.Bind(ESRI.ArcGIS.Engine))
{
if (!ESRI.ArcGIS.RuntimeManager.Bind(ProductCode.Desktop))
{
MessageBox.Show("不能绑定ArcGIS runtime,应用程序即将关闭.");
return;
}
}
//初始化产品代码和扩展代码 m_AOLicenseInitializer.InitializeApplication(
new esriLicenseProductCode[] { esriLicenseProductCode.esriLicenseProductCodeStandard },
new esriLicenseExtensionCode[] { esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst,
esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork,
esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst,
esriLicenseExtensionCode.esriLicenseExtensionCodeDataInteroperability }); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Main()); //关闭程序后关闭许可初始化
m_AOLicenseInitializer.ShutdownApplication();
}
(1) AreEngine许可类型一旦执行后,在程序运行期间无法进行修改;
(2) 使用扩展模块中的功能时,不但要初始化ProductCode,还要初始化ExtensionCode;
(3) 使用GP调用了spatialanaly中的工具,报错:the tool is not licensed,是因没许可初始化是没有初始化ExtensionCode。
ArcEngine10.x开发的许可问题的更多相关文章
- ArcEngine中License权限等级更改的问题
曾经认为自己对于ArcGIS 开发许可问题比较理解了,并小结在<ArcEngine10.x开发的许可问题>中. 01.权限问题 今天在调用GP时失败(插值式开发,使用的是他人框架),因为需 ...
- ArcEngine9.3迁移至ArcObject10.1
以前写的程序,现在看起来真是相当的青涩,当时写的东西是显得多么地无知啊,很多应该写成一个类,有些需要优化,需要多线程,代码需要加密--总一种想修改的冲动.但这也需要时间和精力.下面准备将原来的程序进行 ...
- 轻松搭建Windows8云平台开发环境
原文:轻松搭建Windows8云平台开发环境 Windows Store应用是基于Windows 8操作系统的新一代Windows应用程序,其开发平台以及运行模式和以往传统平台略有不同.为了帮助更多开 ...
- APP store 上架过程中碰到的那些坑&被拒的各种奇葩原因整理&审核指南中文版
苹果官方发布的十大常见被拒原因 1.崩溃次数和Bug数量.苹果要求开发者在将应用提交给App Store之前彻查自己的应用,以尽量避免Bug的存在. 2.链或错误的链接.应用中所有的链接必须是真实且有 ...
- LVL类及接口使用介绍(License Verification Library )
原文:http://android.eoe.cn/topic/android_sdk LVL Classes and Interfaces-LVL类和接口 Table 1 lists all of t ...
- 了解Kubernetes主体架构(二十八)
前言 Kubernetes的教程一直在编写,目前已经初步完成了以下内容: 1)基础理论 2)使用Minikube部署本地Kubernetes集群 3)使用Kubeadm创建集群 接下来还会逐步完善本教 ...
- VisionPro和Halcon的详细对比
一.概括的对比 1.1 Halcon的优势 Halcon有着更加低廉的Lisence 1.并且提供更好.更强大的2D和3D的视觉软件库 2.Halcon支持的视觉图像采集设备数量是Visionpro ...
- 剖析虚幻渲染体系(14)- 延展篇:现代渲染引擎演变史Part 1(萌芽期)
目录 14.1 本篇概述 14.1.1 游戏引擎简介 14.1.2 游戏引擎模块 14.1.3 游戏引擎列表 14.1.3.1 Unreal Engine 14.1.3.2 Unity 14.1.3. ...
- BizTalk开发系列(三十八)微软BizTalk Server定价和许可[解读]
做BizTalk的项目一段时间了,但是对BizTalk的价格和许可还不是很了解.给客户设计解决方案时大部分产品都是直接按照企业版的功能来设计,很 少考虑到价格和许可方面的因素,以为这个不是我们的事情或 ...
随机推荐
- KMP 理解
例题 以字符串 ABABACA 为例 a 前缀: 后缀: 结果为0 ab 前缀:a 后缀: b 结果为0 aba 前缀:a ab 后缀: ba a 结果为1,此时 i=2,j=1 abab 前缀:a ...
- hdu 4277 USACO ORZ DFS
USACO ORZ Time Limit: 5000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- HDOJ 4414 Finding crosses 暴力!
Finding crosses Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- Codeforces Round #288 (Div. 2) E. Arthur and Brackets 贪心
E. Arthur and Brackets time limit per test 2 seconds memory limit per test 128 megabytes input stand ...
- [Visual Studio] 重置默认设置 还原默认设置
恢复默认设置的2种方法 如果VS出现问题或设置变乱,可以通过恢复默认设置使之回到安装成功时的状态,从而解决出现的问题.VS恢复默认设置的方法有2种,分别是:通过“导入和导出设置”实现和通过命令实现. ...
- List常用子类的特点
ArrayList: 底层数据结构是数组,查询快,增删慢 线程不安全, 效率较高 Vector 底层数据结构是数组,查询快,增删慢 线程安全, 效率较低 LinkedList 底 ...
- webpack入门(1)
webpack入门(1) 源码戳这里 ps:每个案例对应相应的demo,例如"案例1"对应"demo1" 一.webpack基本功能及简单案例 安装webpac ...
- IDC门外汉-单线、双线、智能多线、BGP的区别
一.单线在此不多说,不是电信,就是网通机房,是,2005年前的机房情况: 二.双线:上般是从2004年到2008年用此方法较多,此今还有不少在用此法如下: 双线主机 有单IP和单网卡双IP地址,双网卡 ...
- C#编程(三)
原文链接:http://blog.csdn.net/shanyongxu/article/details/46398713 C#中的常量 定义常量所需要的关键字:const,语法结果:const 变量 ...
- tomcat 的缓存机制
事出做项目时一个jsp页面修改后一直没有读出来,后来仔细研究了下tomcat才发现 当请求jsp页面时,Tomcat会分派给JspServlet来处理,在jspServlet的方法 service() ...