ArcEngine10开发——许可问题

前端之家收集整理的这篇文章主要介绍了ArcEngine10开发——许可问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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 Files\ArcGIS\DeveloperKit10.0\DotNet文件夹下。可以在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错误信息:

猜你在找的VB相关文章