Export (0) Print
Expand All

ApplicationDeployment.CheckForUpdate Method

Checks UpdateLocation to determine whether a new update is available.

Namespace:  System.Deployment.Application
Assembly:  System.Deployment (in System.Deployment.dll)

public bool CheckForUpdate()

Return Value

Type: System.Boolean
true if a new update is available; otherwise, false.

ExceptionCondition
InvalidOperationException

ClickOnce throws this exception immediately if you call the CheckForUpdate method while an update is already in progress.

DeploymentDownloadException

The deployment manifest cannot be downloaded.

InvalidDeploymentException

The deployment manifest is corrupted. You will likely need to redeploy the application to fix this problem.

The CheckForUpdate method compares the version of the currently installed deployment with the version specified in the deployment manifest found at UpdateLocation. If the version on the server is different from the installed version, it returns true.

This method will block until the check has completed. To check for an update asynchronously, use the CheckForUpdateAsync method instead.

NoteNote

If CheckForUpdate discovers that an update is available, and the user chooses not to install it, ClickOnce will prompt the user that an update is available the next time the application is run. There is no way to disable this prompting. (If the application is a required update, ClickOnce will install it without prompting.)

The following code example checks for an application update; if one is available, it installs it synchronously.

private void InstallUpdateSync()
{
    if (ApplicationDeployment.IsNetworkDeployed)
    {
        Boolean updateAvailable = false;
        ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;

        try
        {
            updateAvailable = ad.CheckForUpdate();
        }
        catch (DeploymentDownloadException dde)
        {
            // This exception occurs if a network error or disk error occurs 
            // when downloading the deployment.
            MessageBox.Show("The application cannt check for the existence of a new version at this time. \n\nPlease check your network connection, or try again later. Error: " + dde);
            return;
        }
        catch (InvalidDeploymentException ide)
        {
            MessageBox.Show("The application cannot check for an update. The ClickOnce deployment is corrupt. Please redeploy the application and try again. Error: " + ide.Message);
            return;
        }
        catch (InvalidOperationException ioe)
        {
            MessageBox.Show("This application cannot check for an update. This most often happens if the application is already in the process of updating. Error: " + ioe.Message);
            return;
        }

        if (updateAvailable)
        {
            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. Either the deployment server is unavailable, or your network connection is down. \n\nPlease check your network connection, or try again later. Error: " + dde.Message);
            }
            catch (TrustNotGrantedException tnge)
            {
                MessageBox.Show("The application cannot be updated. The system did not grant the application the appropriate level of trust. Please contact your system administrator or help desk for further troubleshooting. Error: " + tnge.Message);
            }
        }
    }
}

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft