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。

时间: 2024-11-05 14:51:35

ArcEngine10.x开发的许可问题的相关文章

ArcEngine中License权限等级更改的问题

曾经认为自己对于ArcGIS 开发许可问题比较理解了,并小结在<ArcEngine10.x开发的许可问题>中. 01.权限问题 今天在调用GP时失败(插值式开发,使用的是他人框架),因为需要Advanced级别权限.有两点可以证明是权限不足:一是我在新建项目中测试成功,说明代码参数没问题:二是在问题框架调用clip(只需Basic级别)成功.更改变我的人生观念的是:同事们都说,既然权限不足,就在调用功能是再次初始化相应权限!在我的印象中,权限一旦初始化,就不可更改,除非结束程序. 02.还原真

APP store 上架过程中碰到的那些坑&amp;被拒的各种奇葩原因整理&amp;审核指南中文版

苹果官方发布的十大常见被拒原因 1.崩溃次数和Bug数量.苹果要求开发者在将应用提交给App Store之前彻查自己的应用,以尽量避免Bug的存在. 2.链或错误的链接.应用中所有的链接必须是真实且有效的. 3.占位符内容.有占位符内容的应用将无法审核通过. 4.提交的信息不完整.苹果要求开发者提供所有必须在iTunes Connect的应用审查信息区(App Review Information Section)中提交审查时所需要用到的所有完整信息.这是应用审核未通过最常见的原因,占到了14%

2019.4.14 区块链论文翻译

GDPR-Compliant Personal Data Management: ABlockchain-based SolutionImperial  College  Londo & Liverpool John MooresUniversity通用数据保护法规(GDPR)通过指定管理和处理个人数据的服务提供商(SP)的更高要求和义务,将个人数据控制权交还给所有者.由于监督机关处理的GDPR遵守情况的核查是定期进行的;认证anSP一直坚持GDPR是具有挑战性的.此外,超出数据所有者的能力,可

配置Arcengine10.1+java开发环境(Eclipse)

以下开发环境配置是假定用户已经安装了Java开发的IDE(Eclipse) 软件准备 (一)ArcEngine 10.1 安装包            提取码:poa0 (二)ArcGIS License Manager          提取密码:a54e   软件安装 1.安装Licence Manager  按照安装指引一直下一步直到安装完成. 启动 Licence Server Administrator ,停止许可服务(如下图) 2.安装ArcEngine 一直点下一步直到完成 3.安

BizTalk开发系列(三十八)微软BizTalk Server定价和许可[解读]

做BizTalk的项目一段时间了,但是对BizTalk的价格和许可还不是很了解.给客户设计解决方案时大部分产品都是直接按照企业版的功能来设计,很 少考虑到价格和许可方面的因素,以为这个不是我们的事情或者认为使用企业版是应该的,企业软件的销售就是有意思,懂产品的和卖产品的一般不是一个人.懂产 品的一般是做技术的,学这个产品的时候就是用D版的或者是企业版,不会去关心不同产品的定价.当然在跟客户讲的时候就很少考虑版本及价格因素.而卖产品就 会添油加醋说要实现这样的平台您需要购买XX.YY产品,当然为要

使用Hbuilder开发IOS应用上架审核提示请指定用户在位置许可模式警报中使用位置的预定用途。

使用Hbuilder开发IOS应用时,遇到上架App被拒的问题,被拒原因: 你的应用程序使用位置服务,但并没有按照iOS人机界面指南中的要求,在位置模式警报中阐明它的用途. 要解决此问题,请指定用户在位置许可模式警报中使用位置的预定用途. 在查看Hbuilder官方社区找到解决方案. 关于描述的问题,在manifest.json文件中,plus->distribute->apple下,新增plistcmds节点. "plistcmds":[ "Set :NSCam

Office 365 E3开发版的Power BI Free 许可设置

因为注册过了Office 365 E3开发版MSDN,之前一致拥有一个测试用的Power BI Pro许可(整个域仅送了1个Pro许可证).很多时候需要做测试的时候,只能来回在账号之间做启用和取消来更替试用这个Pro,显得弥足珍贵. 但是今天却发现,在管理的订阅市场里面有个这个东西存在. 然后进入查看,Free许可居然还有购买,有效期一个月~ 字面上看着似乎有点 鸡肋,增加了操作.但是考虑到账单是0,于是就买着玩玩,后面也给现有账户添加之后,顺利登录Power BI Web. 但是故事并没有到此

ArcEngine10.2+Eclipse4.3(Kepler)java开发(一)

安装完desktop,再准备安装jdk,并配置jdk的开发环境.ArcObjects SDK for java 所使用的JDK是32位的,所以在安装JDK时要注意.我的win7系统是64位的,Eclipse也是64位的,所以一开始安装JDK是选择的也是64位.结果在运行AO的示例是就报了如下错误: Could not load native libraries.java.lang.UnsatisfiedLinkError: no ntvinv in java.library.path 之后改用了

【转】 ios开发证书CER文件、P12文件,mobileprovition许可文件的用途

钥吻合之后.我们一般会给证书做个备份,这个备份就是个P12文件. 这个p12文件很好用,它不仅包含CER的信息,还有私钥信息,即: P12备份文件 = CER文件  + 私钥:所以有了这个p12就再也不用担心证书丢失了. 3,mobileprovition文件 如果说开发证书让苹果相信了你是一个合法的开发者的话,那么这个许可证就是为了让 你调试的真机设备(iPhone,ipad)被认为是个合法的测试设备.这个许可证就是设备的信任凭证. 当APP安装到真机上的时候,APP里的许可证信息和iPhon