2016-05-19 58 views

回答

0

首先,确保您的应用程序启用检查更新。右键点击你的项目 - >属性 - >发布标签 - >更新。勾选复选框“应用程序应检查更新”

Enable check for updates

使用下面的代码,在按钮单击事件来检查使用ClickOnce更新

UpdateCheckInfo info = null; 

if (ApplicationDeployment.IsNetworkDeployed) 
{ 
    ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment; 

    try 
    { 
     info = ad.CheckForDetailedUpdate(); 

    } 
    catch (DeploymentDownloadException dde) 
    { 
     MessageBox.Show("The new version of the application cannot be downloaded at this time. \n\nPlease check your network connection, or try again later. Error: " + dde.Message); 
     return; 
    } 
    catch (InvalidDeploymentException ide) 
    { 
     MessageBox.Show("Cannot check for a new version of the application. The ClickOnce deployment is corrupt. Please redeploy the application and try again. Error: " + ide.Message); 
     return; 
    } 
    catch (InvalidOperationException ioe) 
    { 
     MessageBox.Show("This application cannot be updated. It is likely not a ClickOnce application. Error: " + ioe.Message); 
     return; 
    } 

    if (info.UpdateAvailable) 
    { 
     Boolean doUpdate = true; 

     if (!info.IsUpdateRequired) 
     { 
      DialogResult dr = MessageBox.Show("An update is available. Would you like to update the application now?", "Update Available", MessageBoxButtons.OKCancel); 
      if (!(DialogResult.OK == dr)) 
      { 
       doUpdate = false; 
      } 
     } 
     else 
     { 
      // Display a message that the app MUST reboot. Display the minimum required version. 
      MessageBox.Show("This application has detected a mandatory update from your current " + 
       "version to version " + info.MinimumRequiredVersion.ToString() + 
       ". The application will now install the update and restart.", 
       "Update Available", MessageBoxButtons.OK, 
       MessageBoxIcon.Information); 
     } 

     if (doUpdate) 
     { 
      try 
      { 
       ad.Update(); 
       MessageBox.Show("The application has been upgraded, and will now restart."); 
       Application.Restart(); 
      } 
      catch (DeploymentDownloadException dde) 
      { 
       MessageBox.Show("Cannot install the latest version of the application. \n\nPlease check your network connection, or try again later. Error: " + dde); 
       return; 
      } 
     } 
    } 
} 
相关问题