加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

ArcEngine10开发——许可问题

发布时间:2020-12-16 22:25:21 所属栏目:大数据 来源:网络整理
导读:ArcEngine10开发——许可问题 在 ArcGIS 10 系列中,安装好 ArcGIS Desktop 和 ArcObject SDK ,获取软件授权就可以进行 ArcObject 开发了。在这个新版本的开发中,许可方式发生了一定的变化,此文对此做个讲述。 许可初始化 在 ArcGIS 9.3 中,对于所有单机

ArcEngine10开发——许可问题

ArcGIS 10系列中,安装好ArcGIS DesktopArcObject 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 FilesArcGISDeveloperKit10.0DotNet文件夹下。可以在Visual Studio IDE中将该程序集添加为项目引用。

使用LicenseControlArcGIS 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错误信息:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读