zoukankan      html  css  js  c++  java
  • ArcEngine开发——许可问题

      在ArcGIS 10系列中,安装好ArcGIS Desktop和ArcObject SDK,获取软件授权就可以进行ArcObject开发了。在这个新版本的开发中,许可方式发生了一定的变化,此文对此做个讲述。

    许可初始化

      在ArcGIS 9.3中,对于所有单机应用程序(stand-alone applications),在运行ArcObjects组件之前,对其许可进行初始化是必须的。完成ArcGIS许可检查的APIs是在ESRI.ArcGIS.esriSystem.AoInitialize类中。传统的,许可检查可通过以下方法的一种来完成:

    • 直接式——编写AoInitialize代码,一般来说,可以使用ArcGIS许可初始化向导。对于开发者来说,可以使用Visual Studio集成开发环境下的ESRI工具,通过Add ArcGIS License Checking命令可以调用ArcGIS许可初始化向导。
    • 间接式——在Windows窗体上放置一个LicenseControl控件。

    Runtime绑定

      ArcGIS 10中有一个新的要求——runtime绑定。所谓runtime绑定,就是在任何ArcObjects代码(包括许可初始化代码)被执行之前,指定相称的ArcGIS产品——ArcGIS Desktop或者ArcGIS Engine应用程序。建立runtime绑定的APIs位于程序集ESRI.ArcGIS.Version的类ESRI.ArcGIS.RuntimeManager中,该程序集随着任何ArcGIS 10 runtime一起安装于全局程序集缓存(Global Assembly Cache (GAC))中。安装了ArcObjects .NET SDK,默认的,程序集ESRI.ArcGIS.Version位于C:\Program Files\ArcGIS\DeveloperKit10.0\DotNet文件夹下。可以在Visual Studio IDE中将该程序集添加为项目引用。

    使用LicenseControl将ArcGIS 9.3应用程序迁移至ArcGIS 10

      使用LicenseControl,迁移ArcGIS 9.3Desktop或者Engine应用程序至ArcGIS 10,执行以下步骤:

    1. 安装 ArcObjects .NET SDK 。
    2. 升级Visual Studio 2003 和 2005 版本的项目至 Visual Studio 2008 版本。
    3. 确保设置所有 ESRI 程序集的Specific Version属性为False 。
    4. 添加ESRI.ArcGIS.Version程序集至项目。
    5. 添加ESRI.ArcGIS.ADF.Local程序集至项目。
    6. 在使用其它任何ArcObjects代码之前,添加下面的代码语句:
      [C#]
    //Insert this line before the Application.Run in the static void Main() method.
    ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);
      [VB.NET]
    'Insert this line before the InitializeComponent() method in Public Sub New().
    ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine)

      在使用ArcObjects代码之前,如果没有在正确的位置放置RuntimeManager.Bind方法代码,将会导致如下runtime错误信息:

    使用ESRI.ArcGIS.esriSystem.AoInitialize类将ArcGIS 9.3应用程序迁移至ArcGIS 10

      在代码中使用ESRI.ArcGIS.esriSystem.IAoInitialize类也可以执行runtime绑定。有两种方案可以完成该runtime绑定过程:其一是手工编写代码;其二是利用ArcGIS License Initializer Wizard生成代码。下面给出两种方案的详细步骤。

    手工编写runtime绑定代码方案步骤:
    1. 安装 ArcObjects .NET SDK 。
    2. 升级Visual Studio 2003 和 2005 版本的项目至 Visual Studio 2008 版本。
    3. 确保设置所有 ESRI 程序集的Specific Version属性为False 。
    4. 添加ESRI.ArcGIS.Version程序集至项目。
    5. 在使用其它任何ArcObjects代码之前,添加下面的代码语句:
      [C#]
    ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);
      [VB.NET]
    ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine)

      利用ArcGIS License Initializer Wizard生成runtime绑定代码步骤:

    1. 安装 ArcObjects .NET SDK 。
    2. 升级Visual Studio 2003 和 2005 版本的项目至 Visual Studio 2008 版本。
    3. 确保设置所有 ESRI 程序集的Specific Version属性为False 。
    4. 添加ESRI.ArcGIS.Version程序集至项目。
    5. 添加ESRI.ArcGIS.ADF.Local程序集至项目。
    6. 在Visual Studio中通过 Add ArcGIS License Checking命令,运行ArcGIS License Initializer wizard。如下图所示:

      
      尽管在开发ArcGIS 9.3项目时运行过ArcGIS License Initializer,迁移至ArcGIS 10时仍然需要再次运行ArcGIS License Initializer,因为ArcGIS License Initializer生成的代码有些已经被改变了,参见下图:   

      7. 在使用其它任何ArcObjects代码之前,添加下面的代码语句:
      [C#]

    //Insert this line before the Application.Run in the static void Main() method.
    ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);
      [VB.NET]
    'Insert this line before the InitializeComponent() method in Public Sub New().
    ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine)

      在使用ArcObjects代码之前,如果没有在正确的位置放置RuntimeManager.Bind方法代码,将会导致如下runtime错误信息:

  • 相关阅读:
    【前端_js】前端跨网络异步获取资源——fetch()
    【前端_React】React小书
    【前端_js】JQuery DataTables插件的使用
    【前端_js】解决ajax跨域请求数据
    event.srcElement在火狐(FireFox)下的兼容问题。搜索框获得焦点时默认文字变化
    ASP.NET MVC 上传大文件时404
    使用Zen coding高效编写html代码
    CSS 去除列表项li前面的小圆点
    谈谈CSS的布局,display、position、float
    JS引用类型之——RegExp
  • 原文地址:https://www.cnblogs.com/hans_gis/p/2097051.html
Copyright © 2011-2022 走看看