2016-05-19 83 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; 
      } 
     } 
    } 
} 
相關問題