public static void initlicense() { AoInitialize aoi = new AoInitialize(); esriLicenseExtensionCode extensionCodes = esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst; //这是解决的办法 esriLicenseExtensionCode extensionCode = esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst; esriLicenseProductCode pro = esriLicenseProductCode.esriLicenseProductCodeEngine; if (aoi.IsProductCodeAvailable(pro) == esriLicenseStatus.esriLicenseAvailable && aoi.IsExtensionCodeAvailable(pro, extensionCode) == esriLicenseStatus.esriLicenseAvailable && aoi.IsExtensionCodeAvailable(pro, extensionCodes) == esriLicenseStatus.esriLicenseAvailable ) { aoi.Initialize(pro); aoi.CheckOutExtension(extensionCode); aoi.CheckOutExtension(extensionCodes); } }
public static void Initailize3D() { RuntimeManager.Bind(ProductCode.EngineOrDesktop); IAoInitialize iao = new AoInitialize(); iao.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB); if ((iao.IsExtensionCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB, esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst) == esriLicenseStatus.esriLicenseAvailable) && (iao.IsExtensionCheckedOut(esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst) == true)) { iao.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst); } }
private static bool checkLicense() { ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop); IAoInitialize m_AoInitialize = new AoInitialize(); esriLicenseStatus licenseStatus = (esriLicenseStatus)m_AoInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine); if (licenseStatus == esriLicenseStatus.esriLicenseAvailable) { licenseStatus = (esriLicenseStatus)m_AoInitialize.IsExtensionCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine, esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst); if (licenseStatus == esriLicenseStatus.esriLicenseAvailable) { licenseStatus = (esriLicenseStatus)m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);//esriLicenseProductCodeEngine); if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut) { XtraMessageBox.Show("The initialization failed. This application cannot run!"); return(false); } else { licenseStatus = (esriLicenseStatus)m_AoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeDesigner); if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut) { XtraMessageBox.Show("Unable to check out the Designer extension. This application cannot run!"); return(false); } else { licenseStatus = (esriLicenseStatus)m_AoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst); if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut) { XtraMessageBox.Show("Unable to check out the Designer extension. This application cannot run!"); return(false); } } } } return(true); } else { XtraMessageBox.Show("The ArcGIS Engine product is unavailable. This application cannot run!"); return(false); } }