protected override void OnClick() { try { // to check the state of the extension, get the extension log.Info("Retrieving a reference to the extension object to check state."); GoogleMapsEngineToolsExtensionForArcGIS ext = GoogleMapsEngineToolsExtensionForArcGIS.GetExtension(); // check to see if the extension is enabled log.Debug("Verifying extension is enabled."); if (ext.isExtensionEnabled()) { // create an update check object log.Debug("Creating an update check object."); Extension.Update.ExtensionUpdateCheck updateCheck = new Extension.Update.ExtensionUpdateCheck(); // check to see if there is an update available log.Debug("Checking to see if there is an update available."); if (updateCheck.isUpdateAvailable()) { log.Debug("isUpdateAvailable = true"); // create a dialog to inform the user of an update log.Debug("Showing the user an OK/Cancel dialog to notify them of an update."); if (System.Windows.Forms.MessageBox.Show("An update to the Google Maps Engine Tools for ArcGIS is avaiable. Would you like to update the Add-in now?" , "Update Available (" + updateCheck.getLocalVersion().ToString() + " < " + updateCheck.getServerVersion().ToString() + ")" , System.Windows.Forms.MessageBoxButtons.OKCancel) == System.Windows.Forms.DialogResult.OK) { // launch browser at the URL provided in the update check log.Debug("Launching the browser to the update URL, as the user selected OK."); System.Diagnostics.Process.Start(updateCheck.getUpdateURI()); } } } } catch (System.Exception ex) { // an error occured log.Error(ex); } }