ArcGIS Engine控件运行许可(转)

时间:2021-10-23 09:09:11
 

Runtime绑定:

在ArcGIS Engine10.0中,许可方式发生了一定的变化,ArcGis10有一个新的要求---runtime绑定。就是在任何ArcObjects代码(包括许可初始化代码)被执行前,指定相称的ArcGIS产品---ArcGIS Desktop或者ArcGIS Engine应用程序。

建立runtime绑定的APIs位于程序集ESRI.ArcGIS.Version的类ESRI.ArcGIS.RuntimeManager中,该程序集随着任何ArcGIS10 runtime一起安装于全局程序集缓存(Global Assembly Cache(GAC))中。安装了ArcObjects.NETSDK,默认的程序集ESRI.ArcGIS.Version位于C:/Program Files/ArcGIS/DeveloperKit10.0/DotNet文件夹下。可以在VisualStudio IDE中将该程序集添加为项目引用。

利用LicenseControl将ArcGIS9.3应用程序迁移至ArcGIS10:

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

1、  安装ArcObjects.NETSDK;

2、  升级VisualStudio的项目至Visual Studio 2008或以上版本;

3、  确保设置所有ESRI程序集的SpecificVersion属性为False;

4、  加ESRI.ArcGIS.Version程序集至项目;

5、  加ESRI.ArcGIS.ADF.Local程序集至项目;

6、  在使用其他任何ArcObjects代码之前,添加下面的代码语句:

[C#]中:

ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);

[VB.NET]中:

ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);

利用ESRI.ArcGIS.esriSystem.AoInitialize类将ArcGIS9.3应用程序迁移至ArcGIS 10:

在代码中使用ESRI.ArcGIS.esriSystem.IAoInitialize类也可以执行runtime绑定。有两种方法,步骤分别为:

手工编写runtime绑定代码方案步骤:

1、  安装ArcObjects.NETSDK;

2、  升级VisualStudio的项目至Visual Studio 2008或以上版本;

3、  确保设置所有ESRI程序集的SpecificVersion属性为False;

4、  加ESRI.ArcGIS.Version程序集至项目;

5、  加ESRI.ArcGIS.ADF.Local程序集至项目;

6、  在使用其他任何ArcObjects代码之前,添加下面的代码语句:

[C#]中:

ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);

[VB.NET]中:

ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);

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

1、  安装ArcObjects.NET SDK;

2、  升级VisualStudio的项目至Visual Studio 2008或以上版本;

3、  确保设置所有ESRI程序集的SpecificVersion属性为False;

4、  加ESRI.ArcGIS.Version程序集至项目;

5、  加ESRI.ArcGIS.ADF.Local程序集至项目;

6、  在Visual Studio中通过Add ArcGIS License Checking命令,运行ArcGIS LicenseInitialzer Wizard。

ArcGIS Engine控件运行许可(转)

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

7、  在使用其他任何ArcObjects代码之前,添加下面的代码语句:

[C#]中:

ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);

[VB.NET]中:

ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);