首页 新闻 会员 周边

ArcObject 10.1开发的程序,客户机没有License时提示信息不会显示

0
悬赏园豆:20 [已关闭问题] 关闭于 2015-11-01 18:43

C#+ArcObject 10.1开发的程序,运行环境需要ArcGIS 10.1的license开启,同时有desktop 或 Engine。

1.程序在本机运行正常,其他装有相应版本的ArcGIS并开启license服务后的机器也可以运行,打包成安装程序后,安装后也可正常运行。

2.关闭license后    a.本机调试可以出现错误提示,b.直接运行生成的exe文件也会出现错误提示,c.用安装包安装后的程序运行 不会提示错误信息

3.错误提示代码如下

static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//加入这一句话,engine or desktop
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);

IAoInitialize m_AoInitialize = new AoInitialize();
//////////////////////////////////////

if (m_AoInitialize == null)
{
System.Windows.Forms.MessageBox.Show("系统初始化失败,可能是缺少ArcEngine或没有开启许可服务", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}

// 判断产品是否有效
esriLicenseStatus licenseStatus = (esriLicenseStatus)m_AoInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine);
if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
{
licenseStatus = (esriLicenseStatus)m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);
if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
{
System.Windows.Forms.MessageBox.Show("ArcGIS许可服务Can't be checked out,可能是缺少ArcEngine10.1或没有开启许可服务", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
}
else
{
System.Windows.Forms.MessageBox.Show("ArcGIS许可服务不可用,可能是缺少ArcEngine10.1或没有开启许可服务", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}

/////////////////////////////////////


try
{
Application.Run(new MainForm());
}
catch (Exception)
{
System.Windows.Forms.MessageBox.Show("主窗体初始化失败,可能是缺少ArcEngine10.1或没有开启许可服务,程序将退出", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
}

4.提示图片

关闭license后直接运行release目录下exe的错误提示

用安装包安装后运行,直接死掉,不提示错误(若license开启则可正常运行)

 

提问:如何让安装包安装后的程序在运行时,若客户机环境不对(如没有开启License,或不匹配)也能收到相应的提示信息?

谢谢!

橘生淮南_的主页 橘生淮南_ | 初学一级 | 园豆:117
提问于:2015-07-11 17:58
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册