在ArcGIS Engine的开发过程中,我们可能经常需要打开其他版本的ArcEngine应用程序,但是总会报一大推的错误,窗体也没法显示。 所以需要修改有关于版本的文件。
熟悉的人应该知道,当ArcEngine10.0、ArcEngine10.1、ArcEngine10.2、、ArcEngine9.3这些版本相互转换时,只需要用记事本的方式打开示例程序中,与程序名称相同且后缀名为.csprof的文件,然后替换成对应的版本号即可。
比如将ArcEngine10.0,转换成ArcEngine10.1时,只需要用记事本的方式打开示例程序中,与程序名称相同且后缀名为.csprof的文件,然后 编辑->替换: 输入,查找内容为10.0.0.0 替换内容为10.1.0.0 即可。
但是当转换成ArcEngine10.4时,除了上述替换内容为10.4.0.0之外,还需要找到该文件里的.netframework,版本替换为4.5.2,如下所示:
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> 替换为
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
最后一步还需要在要修改程序的Program.cs文件为如下所示: (其中XXXX与xxxxx分别填程序的命名空间与要启动的窗体名称)
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using ESRI.ArcGIS;
using ESRI.ArcGIS.esriSystem;
namespace XXXX //XXXX为程序的命名空间
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
if (!RuntimeManager.Bind(ProductCode.Engine))
{
if (!RuntimeManager.Bind(ProductCode.Desktop))
{
MessageBox.Show("Unable to bind to ArcGIS runtime. Application will be shut down.");
return;
}
}
IAoInitialize m_aoinitialize = new AoInitializeClass();
m_aoinitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new xxxxx); //xxxxx为你要启动的窗体名称
}
}
}